SAIL təsvirin şifrəsini açma kitabxanası mövcuddur

MIT lisenziyası altında nəşr olundu cross-platform image decoding kitabxana SAIL. SAIL, C-də yenidən yazılmış uzun müddət dəstəklənməyən şəkil görüntüləyicisindən kodeklərin rebrendinqidir. KSquirrel, lakin yüksək səviyyəli abstrakt API və çoxsaylı təkmilləşdirmələrlə. Hədəf auditoriyası: imic izləyiciləri, oyun inkişafı, digər məqsədlər üçün şəkillərin yaddaşa yüklənməsi. Kitabxana inkişaf mərhələsindədir, lakin artıq istifadəyə yararlıdır. İnkişafın bu mərhələsində binar və mənbə kodu uyğunluğuna zəmanət verilmir.

Xüsusiyyətləri:

  • Üçüncü tərəfdən asılılıqlar olmadan C dilində yazılmış sadə, yığcam və sürətli kitabxana (kodeklər istisna olmaqla);
  • Bütün ehtiyaclar üçün sadə, başa düşülən və eyni zamanda güclü API;
  • C++ üçün bağlamalar;
  • Şəkil formatları dinamik yüklənmiş kodeklər tərəfindən dəstəklənir;
  • Fayldan, yaddaşdan və ya hətta öz məlumat mənbəyinizdən şəkilləri oxuyun (və yazın);
  • Şəkil növünün fayl uzantısı və ya ilə müəyyən edilməsi sehrli nömrə;
  • Hazırda dəstəklənən formatlar: png (oxumaq, yalnız Windows), JPEG (oxumaq, yazmaq) PNG (oxumaq, yazmaq).
    Yeni formatların əlavə edilməsi istiqamətində işlər aparılır. KSquirrel-libs bu və ya digər şəkildə 60-a yaxın formatı dəstəkləyir, ən populyar formatlar birinci sıradadır;

  • Oxu əməliyyatları həmişə RGB və RGBA formatında piksel çıxara bilər;
  • Bəzi kodeklər daha böyük format siyahısında piksel çıxara bilər;
  • Əksər kodeklər SOURCE pikselini də çıxara bilər. Bu, məsələn, CMYK və ya YCCK şəkillərindən tam məlumat almaq istəyənlər üçün faydalıdır;
  • ICC profillərini oxumaq və yazmaq;
  • C, Qt, SDL-də nümunələr;
  • Dəstəklənən platformalar:
    Windows (quraşdırıcı), macOS (dəm) və Linux (Debian).

SAIL nəyi təmin etmir:

  • Şəkil redaktəsi;
  • Əsas kodeklər (libjpeg və s.) tərəfindən təmin edilənlərdən başqa rəng məkanına çevrilmə funksiyaları;
  • Rəng idarəetmə funksiyaları (ICC profillərinin istifadəsi və s.)

C-də deşifrənin ən sadə nümunəsi:

struct sail_context *kontekst;

SAIL_TRY(sail_init(&kontekst));

struct sail_image *şəkil;
imzalanmamış simvol *şəkil_pikselləri;

SAIL_TRY(yelkənli_oxu(yol,
Kontekst,
&şəkil,
(boş **)&şəkil_pikselləri));

/*
* Burada qəbul edilmiş pikselləri emal edin.
* Bunun üçün image->width, image->height, image->bytes_per_line, istifadə edin.
* və şəkil->pixel_format.
*/

/* Təmizləmək */
pulsuz (şəkil_pikselləri);
sail_destroy_image(şəkil);

API səviyyələrinin qısa təsviri:

  • Yeni başlayan: "Mən sadəcə bu JPEG-i yükləmək istəyirəm"
  • Qabaqcıl: "Mən bu animasiyalı GIF-i yaddaşdan yükləmək istəyirəm"
  • Dərin dəniz dalğıc: “Mən bu animasiyalı GIF-i yaddaşdan yükləmək və seçdiyim kodeklərə və piksel çıxışına tam nəzarət etmək istəyirəm.”
  • Texniki dalğıc: "Yuxarıdakı hər şeyi və öz məlumat mənbəyimi istəyirəm"

Eyni sahədən birbaşa rəqiblər:

  • Pulsuz Şəkil
  • DevIL
  • SDL_Şəkil
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Digər kitabxanalardan fərqləri:

  • Gözlənilən obyektlərlə insan API - şəkillər, palitralar və s.
  • Əksər kodeklər yalnız RGB/RGBA piksellərindən daha çox çıxış edə bilər.
  • Əksər kodeklər orijinal pikselləri RGB-ə çevirmədən çıxara bilər.
  • Siz istənilən dildə kodeklər yaza, həmçinin bütün layihəni yenidən tərtib etmədən əlavə edə/çıxara bilərsiniz.
  • Orijinal şəkil haqqında məlumatı qoruyun.
  • "Zodlama" piksel məlumatlarını deşifrə etmədən şəkil haqqında məlumat əldə etmək prosesidir.
  • Ölçü və sürət.

Mənbə: opennet.ru

Добавить комментарий