απαιτήσεις: Τώρα που το .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 καιΔώστε δικαιώματα εκτέλεσης στο αρχείο! Διαφορετικά, το πρόγραμμα δεν θα εκτελεστεί με την ακόλουθη εντολή:
Στη συνέχεια, εκτελέστε το αρχείο και τα προβλήματα που ενδέχεται να αντιμετωπίσετε είναι τα εξής:
Εάν το σφάλμα είναι το εξής:
Ανεπίλυτη εξαίρεση. 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 ανοιχτού κώδικα που διατίθεται στο εμπόριο με την ακόλουθη εντολή:
Τροποποιήστε τη γραμματοσειρά που χρησιμοποιείται στον πηγαίο κώδικα, αναδημοσιεύστε και μεταφορτώστε στον διακομιστή και το αποτέλεσμα εκτέλεσης είναι το εξής:
Μπορείτε να δείτε ότι μπορείτε να προσθέσετε με επιτυχία ένα κινεζικό υδατογράφημα με τον ακόλουθο κώδικα:
Λήψη πηγαίου κώδικα:
Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώ Απάντηση
(Τέλος)
|