perpustakaan decoding gambar SAIL sadia

Dina lisénsi MIT diterbitkeun perpustakaan decoding gambar cross-platform SAIL. SAIL mangrupikeun rebranding codec tina panempo gambar anu lami teu didukung anu ditulis ulang dina C KSquirrel, tapi kalayan API abstrak tingkat luhur sareng seueur perbaikan. Target panongton: pemirsa gambar, ngembangkeun kaulinan, loading gambar kana mémori keur kaperluan séjén. Perpustakaan nuju ngembangkeun, tapi parantos tiasa dianggo. Kasaluyuan binér sareng kode sumber henteu dijamin dina tahap pangwangunan ieu.

fitur:

  • Perpustakaan anu sederhana, kompak sareng gancang ditulis dina C tanpa kagumantungan pihak katilu (iwal codec);
  • Basajan, kaharti sarta dina waktos anu sareng API kuat pikeun sakabéh kaperluan;
  • Bindings pikeun C ++;
  • Format gambar dirojong ku codec anu dimuat sacara dinamis;
  • Maca (sareng nyerat) gambar tina file, mémori, atanapi bahkan sumber data anjeun nyalira;
  • Nangtukeun jinis gambar ku ekstensi file, atanapi ku angka magic;
  • Format anu dirojong ayeuna: png (baca, Windows wungkul), JPEG (baca, nulis) PNG (baca, nulis).
    Dijalankeun pikeun nambahkeun format anyar. KSquirrel-libs dirojong ngeunaan 60 format dina hiji cara atawa sejen, format nu pang populerna anu kahiji dina garis;

  • Operasi baca salawasna tiasa kaluaran piksel dina format RGB sareng RGBA;
  • Sababaraha codec tiasa kaluaran piksel dina daptar format anu langkung ageung;
  • Seuseueurna codec ogé tiasa ngahasilkeun piksel SOURCE. Ieu mangpaat, contona, pikeun maranéhanana anu hayang meunang informasi lengkep ti CMYK atanapi YCCK gambar;
  • Maca sareng nyerat profil ICC;
  • Conto dina C, Qt, SDL;
  • Platform anu didukung:
    Windows (installer), macOS (brew) sareng Linux (Debian).

Naon SAIL teu nyadiakeun:

  • Ngédit gambar;
  • Fungsi konvérsi rohangan warna lian ti anu disayogikeun ku codec dasar (libjpeg, jsb.);
  • Fungsi manajemén warna (pamakéan profil ICC, jsb)

Conto pangbasajanna decoding dina C:

struct sail_context * kontéks;

SAIL_TRY (sail_init (& konteks));

struct sail_image *gambar;
unsigned char *image_pixels;

SAIL_COBA(sail_read(jalur,
kontéks,
&gambar,
(kosong **) & image_pixels));

/*
* Di dieu ngolah piksel anu ditampi.
* Jang ngalampahkeun ieu, paké image->width, image->height, image->bytes_per_line,
* jeung gambar->pixel_format.
*/

/* Bersihkeun */
gratis (gambar_piksel);
sail_destroy_image(gambar);

Katerangan ringkes tingkat API:

  • Newbie: "Kuring ngan ukur hoyong ngaunduh JPEG ieu"
  • Canggih: "Abdi hoyong ngamuat GIF animasi ieu tina mémori"
  • Palika laut jero: "Kuring hoyong ngamuat GIF animasi ieu tina mémori sareng gaduh kontrol pinuh kana codec sareng kaluaran piksel anu kuring pilih."
  • Palika Téknis: "Kuring hoyong sadayana di luhur, sareng sumber data kuring sorangan"

Pesaing langsung ti daérah anu sami:

  • Gambar Gratis
  • Sétan
  • SDL_Gambar
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Béda ti perpustakaan séjén:

  • API manusa kalawan éntitas ekspektasi - gambar, palettes, jsb.
  • Kaseueuran codec tiasa kaluaran langkung ti ngan ukur piksel RGB / RGBA.
  • Kaseueuran codec tiasa kaluaran piksel asli tanpa konvérsi kana RGB.
  • Anjeun tiasa nyerat codec dina basa naon waé, sareng ogé nambihan / miceun aranjeunna tanpa recompile sadayana proyék.
  • Ngawétkeun informasi ngeunaan gambar aslina.
  • "Probing" nyaéta prosés meunangkeun informasi ngeunaan hiji gambar tanpa decoding data piksel.
  • Ukuran jeung speed.

sumber: opennet.ru

Tambahkeun komentar