Rilis perpustakaan decoding gambar SAIL 0.9.0-pre12

Beberapa pembaruan besar pada perpustakaan decoding gambar SAIL telah diterbitkan, menyediakan penulisan ulang C codec dari penampil gambar KSquirrel yang sudah lama tidak berfungsi, tetapi dengan API abstrak tingkat tinggi dan banyak perbaikan. Perpustakaan sudah siap digunakan, namun masih terus ditingkatkan. Kompatibilitas biner dan API belum dijamin. Demonstrasi.

Fitur BERLAYAR

  • Perpustakaan yang cepat dan mudah digunakan;
  • Ditulis dalam C11 dengan binding ke C++17;
  • Dukungan untuk format gambar diimplementasikan melalui codec yang dimuat secara dinamis, yang dapat dihapus dan ditambahkan secara independen dari sisi klien;
  • Membaca dari file, memori, sumber sendiri;
  • Dukungan untuk gambar multi-halaman dan animasi;
  • Dukungan untuk format populer masih dilakukan menggunakan perpustakaan terkait libjpeg, libpng, dll.
  • Lintas platform: Linux, Windows, macOS;
  • "Probing" - memperoleh informasi tentang suatu gambar tanpa menguraikan piksel;
  • Nama entitas manusia (tidak ada FIMULTIBITMAP);
  • Membaca dan menulis profil ICC;
  • Mengirim piksel RGBA atau BGRA;
  • Mengembalikan piksel asli (misalnya, CMYK) jika didukung oleh codec;

Daftar perubahan sejak publikasi terakhir:

  • API telah ditingkatkan dan disederhanakan secara signifikan. Dulu: struct Sail_context *konteks; SAIL_TRY(sail_init(&konteks)); struct berlayar_image *gambar; karakter yang tidak ditandatangani *image_pixels; SAIL_TRY(sail_read(jalur, konteks, &gambar, (batal **)&gambar_piksel)); ... gratis(piksel_gambar); layar_penghancuran_gambar(gambar);

    Sekarang: struct Sail_image *image; SAIL_TRY(sail_read_file(jalur, &gambar); ... berlayar_destroy_image(gambar);

  • Menambahkan format BMP, GIF, TIFF;
  • Ketersediaan di VCPKG pada semua platform kecuali UWP;
  • Tes kinerja benchmark dipublikasikan;
  • Pengikatan C++ telah dipindahkan ke C++17;
  • Fungsi alokasi memori dikumpulkan di satu tempat sehingga dapat dengan mudah diganti dengan milik Anda sendiri, tetapi saat ini hal ini hanya dapat dilakukan dengan kompilasi ulang;
  • Pengguna sekarang dapat menggunakan CMake find_package() untuk menghubungkan SAIL;
  • Menambahkan kemampuan untuk mengkompilasi secara statis (SAIL_STATIC=ON);
  • Menambahkan kemampuan untuk mengkompilasi semua codec ke dalam satu perpustakaan umum (SAIL_COMBINE_CODECS=ON);
  • Pekerjaan telah dimulai untuk menambahkan pengujian berbasis Β΅nit;

Metode instalasi yang disarankan

  • Linux - vcpkg, aturan Debian juga tersedia
  • Windows - vcpkg
  • macOS - minuman

Sumber: opennet.ru

Tambah komentar