Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 50580|Απάντηση: 2

[.NET Πυρήνας] Ζητήματα υδατογράφησης .NET Core σε εικόνες Linux

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2021-3-28 14:46:15 | | | |
απαιτήσεις: Τώρα που το .NET Core μπορεί να είναι cross-platform, δημοσιεύστε το έργο στο περιβάλλον Linux για εκτέλεση και το έργο θα περιλαμβάνει κάποια επεξεργασία εικόνας, όπως: δημιουργία κωδικών επαλήθευσης, υδατογράφημα εικόνων κ.λπ.

Αρχικά, δημιουργήστε ένα έργο κονσόλας .NET Core 3.1 (ο πηγαίος κώδικας επισυνάπτεται στο τέλος του άρθρου) και πρέπει να εγκατασταθεί η επεξεργασία εικόνας:Σύστημα.Σχέδιο.Κοινό

Χρησιμοποιήστε το πακέτο nuget για να διαχειριστείτε την εγκατάσταση με την ακόλουθη εντολή:


Δημοσιεύστε το έργο ως ένα μόνο αρχείο, η πλατφόρμα προορισμού είναι: linux-x64 και η διαμόρφωση δημοσίευσης είναι η εξής:

<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration>Ελευθέρωση</Configuration>
    <Platform>Οποιαδήποτε CPU</Platform>
    <PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
    <PublishProtocol>Σύστημα αρχείων</PublishProtocol>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier>Linux-x64</RuntimeIdentifier>
    <SelfContained>Αληθής</SelfContained>
    <PublishSingleFile>Αλήθεια</PublishSingleFile>
    <PublishTrimmed>Ψευδής</PublishTrimmed>
  </PropertyGroup>
</Project>
Το παραγόμενο μεμονωμένο εκτελέσιμο αρχείο περιέχει στην πραγματικότητα το περιβάλλον που απαιτείται για την εκτέλεση του προγράμματος και δεν χρειάζεται ο υπολογιστής-στόχος να εγκαταστήσει το SDK και το μειονέκτημα είναι ότι το μέγεθος του αρχείου θα γίνει πολύ μεγάλο.

Ανεβάστε το δημοσιευμένο αρχείο στον διακομιστή CentOS καιΔώστε δικαιώματα εκτέλεσης στο αρχείο! Διαφορετικά, το πρόγραμμα δεν θα εκτελεστεί με την ακόλουθη εντολή:


Στη συνέχεια, εκτελέστε το αρχείο και τα προβλήματα που ενδέχεται να αντιμετωπίσετε είναι τα εξής:

Το .NET Core κυκλοφορεί ένα ζήτημα διαδρομής αρχείου
https://www.itsvse.com/thread-9604-1-1.html

Σφάλμα .NET Core Linux: Δεν ήταν δυνατή η εύρεση εγκατεστημένου έγκυρου πακέτου ICU...
https://www.itsvse.com/thread-9603-1-1.html

Σφάλμα .NET Core στο πακέτο εφαρμογών επεξεργασίας αποτυχίας Linux
https://www.itsvse.com/thread-9602-1-1.html
Εάν το σφάλμα είναι το εξής:

Ανεπίλυτη εξαίρεση. System.TypeInitializationException: Ο αρχικοποιητής τύπου για το 'Gdip' έριξε μια εξαίρεση.
---> System.DllNotFoundException: Δεν είναι δυνατή η φόρτωση της κοινόχρηστης βιβλιοθήκης 'libgdiplus' ή μιας από τις εξαρτήσεις της. Για να βοηθήσετε στη διάγνωση προβλημάτων φόρτωσης, εξετάστε το ενδεχόμενο να ορίσετε τη μεταβλητή περιβάλλοντος LD_DEBUG: liblibgdiplus: δεν είναι δυνατό το άνοιγμα αρχείου κοινόχρηστου αντικειμένου: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
   στο System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
   στο System.Drawing.SafeNativeMethods.Gdip.. cctor()
   --- Τέλος εσωτερικής --- ανίχνευσης στοίβας εξαιρέσεων
   στο System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromFile(Όνομα αρχείου συμβολοσειράς, IntPtr& image)
   στο System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
   στο System.Drawing.Image.FromFile(String filename)
   στο ImageWatermark.Program.Main(String[] args)
Ματαιώθηκε
Χρησιμοποιήστε την ακόλουθη εντολήΕγκαταστήστε το libgdiplus-devel


Προσπαθήστε να εκτελέσετε ξανά και μπορείτε να διαπιστώσετε ότι η εκτέλεση ήταν επιτυχής, όπως φαίνεται στην παρακάτω εικόνα:



Δείτε την υδατογραφημένη εικόνα και ανοίξτε το αρχείο "57f2305a-6850-41af-80ab-8d2bf89569e5.jpg", το εφέ είναι το εξής:



Ανακάλυψη,Οι κινεζικοί χαρακτήρες είναι αλλοιωμένοι, δεν υπάρχει πρόβλημα με τους αγγλικούς χαρακτήρες, ελέγξτε τη γραμματοσειρά που έχει εγκαταστήσει το σύστημα, η εντολή είναι η εξής:



Εάν η εντολή δεν είναι διαθέσιμη στο σύστημα, πρέπει πρώτα να εγκαταστήσουμε το σχετικό πακέτο λογισμικού, η εντολή είναι η εξής:

Λύση, εγκαταστήστε τη γραμματοσειρά google-noto ανοιχτού κώδικα που διατίθεται στο εμπόριο με την ακόλουθη εντολή:



Τροποποιήστε τη γραμματοσειρά που χρησιμοποιείται στον πηγαίο κώδικα, αναδημοσιεύστε και μεταφορτώστε στον διακομιστή και το αποτέλεσμα εκτέλεσης είναι το εξής:



Μπορείτε να δείτε ότι μπορείτε να προσθέσετε με επιτυχία ένα κινεζικό υδατογράφημα με τον ακόλουθο κώδικα:

Λήψη πηγαίου κώδικα:

Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώΑπάντηση


(Τέλος)




Προηγούμενος:Το .NET Core κυκλοφορεί ένα ζήτημα διαδρομής αρχείου
Επόμενος:Εκμάθηση .NET/C# Rule Engine RulesEngine
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2021-6-16 14:10:48 |
Δημοσιεύτηκε στις 2022-12-29 11:49:27 |
Μπορείτε να δείτε ότι μπορείτε να προσθέσετε με επιτυχία ένα κινεζικό υδατογράφημα με τον ακόλουθο κώδικα:
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com