Image decoding library SAIL 0.9.0-pre12 release

Na-publish ang ilang pangunahing update sa SAIL image decoding library, na nagbibigay ng C rewrite ng mga codec mula sa matagal nang hindi na gumaganang KSquirrel image viewer, ngunit may mataas na antas na abstract API at maraming mga pagpapahusay. Handa nang gamitin ang library, ngunit patuloy pa rin itong pinapabuti. Ang binary at API compatibility ay hindi pa garantisado. Pagpapakita.

Mga Tampok ng SAIL

  • Mabilis at madaling gamitin na library;
  • Nakasulat sa C11 na may mga binding sa C++17;
  • Ang suporta para sa mga format ng larawan ay ipinapatupad ng mga codec na may dynamic na load, na maaaring alisin at idagdag nang hiwalay sa panig ng kliyente;
  • Pagbabasa mula sa file, memorya, sariling mga mapagkukunan;
  • Suporta para sa maraming pahina at mga animated na larawan;
  • Ang suporta para sa mga sikat na format ay ginagawa pa rin gamit ang kaukulang mga aklatan na libjpeg, libpng, atbp.
  • Cross-platform: Linux, Windows, macOS;
  • "Probing" - pagkuha ng impormasyon tungkol sa isang imahe nang walang pag-decode ng mga pixel;
  • Mga pangalan ng entity ng tao (walang FIMULTIBTMAP);
  • Pagbasa at pagsulat ng mga profile ng ICC;
  • Nagpapadala ng RGBA o BGRA pixels;
  • Ibinabalik ang mga orihinal na pixel (halimbawa, CMYK) kung sinusuportahan ng codec;

Listahan ng mga pagbabago mula noong huling publikasyon:

  • Ang API ay lubos na napabuti at pinasimple. Was: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *image; unsigned char *image_pixels; SAIL_TRY(sail_read(path, context, &image, (walang **)&image_pixels)); ... libre(image_pixels); sail_destroy_image(larawan);

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

  • Idinagdag ang mga format ng BMP, GIF, TIFF;
  • Availability sa VCPKG sa lahat ng platform maliban sa UWP;
  • Na-publish ang mga pagsubok sa pagganap ng benchmark;
  • Ang C++ binding ay inilipat sa C++17;
  • Ang mga function ng paglalaan ng memorya ay kinokolekta sa isang lugar upang madali silang mapalitan ng iyong sarili, ngunit sa ngayon ito ay magagawa lamang sa pamamagitan ng muling pagsasama-sama;
  • Magagamit na ngayon ng mga user ang CMake find_package() para ikonekta ang SAIL;
  • Idinagdag ang kakayahang statically compile (SAIL_STATIC=ON);
  • Nagdagdag ng kakayahang mag-compile ng lahat ng codec sa isang karaniwang library (SAIL_COMBINE_CODECS=ON);
  • Nagsimula na ang trabaho sa pagdaragdag ng mga pagsusulit na nakabatay sa Β΅nit;

Inirerekumendang paraan ng pag-install

  • Linux - vcpkg, ang mga panuntunan ng Debian ay magagamit din
  • Windows - vcpkg
  • macOS - magluto

Pinagmulan: opennet.ru

Magdagdag ng komento