Sa ilalim ng lisensya ng MIT nai-publish cross-platform image decoding library SAIL. Ang SAIL ay isang rebranding ng mga codec mula sa matagal nang hindi sinusuportahang viewer ng imahe na muling isinulat sa C KSquirrel, ngunit may mataas na antas na abstract API at maraming pagpapabuti. Target na madla: mga tumitingin ng larawan, pagbuo ng laro, paglo-load ng mga larawan sa memorya para sa iba pang layunin. Ang library ay nasa ilalim ng pag-unlad, ngunit magagamit na. Ang binary at source code compatibility ay hindi ginagarantiyahan sa yugtong ito ng pag-unlad.
Mga Tampok:
Isang simple, compact at mabilis na library na nakasulat sa C na walang mga dependency ng third-party (maliban sa mga codec);
Simple, nauunawaan at sa parehong oras malakas na API para sa lahat ng pangangailangan;
Mga binding para sa C++;
Ang mga format ng larawan ay sinusuportahan ng mga codec na dynamic na na-load;
Magbasa (at magsulat) ng mga larawan mula sa isang file, memorya, o maging sa iyong sariling data source;
Pagtukoy sa uri ng imahe sa pamamagitan ng extension ng file, o sa pamamagitan ng magic number;
Mga kasalukuyang sinusuportahang format: png (read, Windows lang), JPEG (read, write) PNG (read, write).
Ang trabaho ay isinasagawa upang magdagdag ng mga bagong format. Sinusuportahan ng KSquirrel-libs ang humigit-kumulang 60 mga format sa isang paraan o iba pa, ang pinakasikat na mga format ay nasa unang linya;
Maaaring palaging mag-output ng mga pixel ang mga read operation sa RGB at RGBA na format;
Ang ilang mga codec ay maaaring mag-output ng mga pixel sa mas malaking listahan ng mga format;
Karamihan sa mga codec ay maaari ding mag-output ng SOURCE pixels. Ito ay kapaki-pakinabang, halimbawa, para sa mga gustong makakuha ng buong impormasyon mula sa CMYK o YCCK na mga imahe;
Pagbasa at pagsulat ng mga profile ng ICC;
Mga halimbawa sa C, Qt, SDL;
Mga sinusuportahang platform:
Windows (installer), macOS (brew) at Linux (Debian).
Ano ang hindi ibinibigay ng SAIL:
Pag-edit ng imahe;
Mga function ng conversion ng color space maliban sa ibinigay ng mga pinagbabatayan na codec (libjpeg, atbp.);
Mga function ng pamamahala ng kulay (paggamit ng mga profile ng ICC, atbp.)
SAIL_TRY(sail_read(landas,
konteksto,
&larawan,
(walang bisa **)&image_pixels));
/*
* Dito iproseso ang mga natanggap na pixel.
* Upang gawin ito, gamitin ang image->width, image->height, image->bytes_per_line,
* at larawan->pixel_format.
*/
Advanced: "Gusto kong i-load ang animated na GIF na ito mula sa memorya"
Deep sea diver: "Gusto kong i-load ang animated na GIF na ito mula sa memorya at magkaroon ng ganap na kontrol sa mga codec at pixel output na pipiliin ko."
Technical Diver: "Gusto ko lahat ng nasa itaas, at ang sarili kong data source"
Direktang mga kakumpitensya mula sa parehong lugar:
Libreng Larawan
DevIL
SDL_Larawan
WIC
imlib2
Boost.GIL
gdk-pixbuf
Mga pagkakaiba sa ibang mga aklatan:
Human API na may mga inaasahang entity - mga larawan, palette, atbp.
Karamihan sa mga codec ay maaaring mag-output ng higit pa sa RGB/RGBA pixels.
Karamihan sa mga codec ay maaaring mag-output ng mga orihinal na pixel nang walang conversion sa RGB.
Maaari kang magsulat ng mga codec sa anumang wika, at idagdag/alisin din ang mga ito nang hindi muling kino-compile ang buong proyekto.
Panatilihin ang impormasyon tungkol sa orihinal na larawan.
Ang "Probing" ay ang proseso ng pagkuha ng impormasyon tungkol sa isang imahe nang hindi nagde-decode ng pixel data.