Pagpagawas sa image decoding library SAIL 0.9.0-pre12

Daghang mahinungdanong mga pag-update sa SAIL image decoding library ang gipatik, nga naghatag ug C rewrite sa mga codec gikan sa dugay nang wala na nga KSquirrel image viewer, apan adunay taas nga lebel nga abstract API ug daghang mga kalamboan. Andam na ang librarya alang sa paggamit, apan padayon nga gipauswag. Ang pagkaangay sa binary ug API dili pa garantiya. Demonstrasyon.

Mga bahin sa SAIL

  • Dali ug dali gamiton nga librarya;
  • Gisulat sa C11 nga adunay mga pagbugkos sa C++17;
  • Ang suporta alang sa mga format sa imahe gipatuman sa mga dynamically loaded nga mga codec nga mahimong tangtangon ug idugang nga independente sa bahin sa kliyente;
  • Pagbasa gikan sa file, memorya, kaugalingon nga gigikanan;
  • Suporta alang sa daghang panid ug mga animated nga imahe;
  • Ang suporta alang sa mga sikat nga format gihimo gihapon gamit ang katugbang nga mga librarya nga libjpeg, libpng, ug uban pa.
  • Cross-platform: Linux, Windows, macOS;
  • "Pagsusi" - pagkuha sa kasayuran bahin sa usa ka imahe nga wala’y pag-decode sa mga pixel;
  • Mga ngalan sa tawhanong entidad (walay FIMULTIBTMAP);
  • Pagbasa ug pagsulat sa mga profile sa ICC;
  • Nagpadala sa RGBA o BGRA pixels;
  • Ibalik ang orihinal nga mga pixel (pananglitan, CMYK) kung gisuportahan sa codec;

Listahan sa mga kausaban sukad sa kataposang publikasyon:

  • Ang API labi nga gipauswag ug gipasimple. Kaniadto: struct sail_context *context; SAIL_TRY(sail_init(&konteksto)); struct sail_image *image; unsigned char *image_pixels; SAIL_TRY(sail_read(path, context, &image, (walay **)&image_pixels)); ...libre(image_pixels); sail_destroy_image(larawan);

    Karon: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(image);

  • Gidugang BMP, GIF, TIFF format;
  • Anaa sa VCPKG sa tanan nga mga plataporma gawas sa UWP;
  • Mga pagsulay sa pasundayag sa benchmark nga gipatik;
  • Ang C++ binding gibalhin sa C++17;
  • Ang mga gimbuhaton sa alokasyon sa panumduman gikolekta sa usa ka lugar aron kini dali nga mapulihan sa imong kaugalingon, apan sa pagkakaron mahimo ra kini pinaagi sa pag-recompile;
  • Ang mga tiggamit mahimo nang mogamit sa CMake find_package() aron makonektar ang SAIL;
  • Gidugang ang abilidad sa statically compile (SAIL_STATIC=ON);
  • Gidugang ang abilidad sa pagtipon sa tanan nga mga codec sa usa ka komon nga librarya (SAIL_COMBINE_CODECS=ON);
  • Nagsugod na ang trabaho sa pagdugang sa mga pagsulay nga nakabase sa Β΅nit;

Girekomenda nga pamaagi sa pag-instalar

  • Linux - vcpkg, Debian nga mga lagda magamit usab
  • Windows - vcpkg
  • macOS - brew

Source: opennet.ru

Idugang sa usa ka comment