Έκδοση βιβλιοθήκης αποκωδικοποίησης εικόνας SAIL 0.9.0-pre12

Έχουν δημοσιευθεί αρκετές σημαντικές ενημερώσεις στη βιβλιοθήκη αποκωδικοποίησης εικόνων SAIL, παρέχοντας μια επανεγγραφή C των κωδικοποιητών από το μακροχρόνιο ανενεργό πρόγραμμα προβολής εικόνων KSquirrel, αλλά με ένα αφηρημένο API υψηλού επιπέδου και πολλές βελτιώσεις. Η βιβλιοθήκη είναι έτοιμη για χρήση, αλλά εξακολουθεί να βελτιώνεται συνεχώς. Η συμβατότητα Binary και API δεν είναι ακόμη εγγυημένη. Επίδειξη.

Χαρακτηριστικά του SAIL

  • Γρήγορη και εύκολη στη χρήση βιβλιοθήκη.
  • Γραμμένο σε C11 με δεσμεύσεις σε C++17.
  • Η υποστήριξη για μορφές εικόνας υλοποιείται από δυναμικά φορτωμένους κωδικοποιητές, οι οποίοι μπορούν να αφαιρεθούν και να προστεθούν ανεξάρτητα από την πλευρά του πελάτη.
  • Ανάγνωση από αρχείο, μνήμη, ίδιες πηγές.
  • Υποστήριξη πολυσέλιδων και κινούμενων εικόνων.
  • Η υποστήριξη δημοφιλών μορφών εξακολουθεί να γίνεται χρησιμοποιώντας τις αντίστοιχες βιβλιοθήκες libjpeg, libpng κ.λπ.
  • Cross-platform: Linux, Windows, macOS.
  • "Διερεύνηση" - λήψη πληροφοριών σχετικά με μια εικόνα χωρίς αποκωδικοποίηση εικονοστοιχείων.
  • Ονόματα ανθρώπινων οντοτήτων (χωρίς FIMULTIBITMAP).
  • Ανάγνωση και σύνταξη προφίλ ICC.
  • Στέλνει εικονοστοιχεία RGBA ή BGRA.
  • Επιστρέφει αρχικά pixel (για παράδειγμα, CMYK) εάν υποστηρίζονται από τον κωδικοποιητή.

Λίστα αλλαγών από την τελευταία δημοσίευση:

  • Το API έχει βελτιωθεί σημαντικά και απλοποιηθεί. Ήταν: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *image; ανυπόγραφο char *image_pixels; SAIL_TRY(sail_read(διαδρομή, πλαίσιο, &εικόνα, (κενό **)&image_pixel)); ...δωρεάν(image_pixels); sail_destroy_image(image);

    Τώρα: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(image);

  • Προστέθηκαν μορφές BMP, GIF, TIFF.
  • Διαθεσιμότητα σε VCPKG σε όλες τις πλατφόρμες εκτός από το UWP.
  • Δημοσιεύτηκαν δοκιμές απόδοσης συγκριτικής αξιολόγησης.
  • Η δέσμευση C++ έχει μετακινηθεί στη C++17.
  • Οι συναρτήσεις εκχώρησης μνήμης συλλέγονται σε ένα μέρος, έτσι ώστε να μπορούν να αντικατασταθούν εύκολα με τις δικές σας, αλλά αυτή τη στιγμή αυτό μπορεί να γίνει μόνο με εκ νέου μεταγλώττιση.
  • Οι χρήστες μπορούν τώρα να χρησιμοποιήσουν το CMake find_package() για να συνδέσουν το SAIL.
  • Προστέθηκε η δυνατότητα στατικής μεταγλώττισης (SAIL_STATIC=ON).
  • Προστέθηκε η δυνατότητα μεταγλώττισης όλων των κωδικοποιητών σε μια κοινή βιβλιοθήκη (SAIL_COMBINE_CODECS=ON).
  • Ξεκίνησαν οι εργασίες για την προσθήκη δοκιμών που βασίζονται σε μnit.

Συνιστώμενη μέθοδος εγκατάστασης

  • Linux - vcpkg, κανόνες Debian είναι επίσης διαθέσιμοι
  • Windows - vcpkg
  • macOS - παρασκευή

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο