Keluaran perpustakaan penyahkod imej SAIL 0.9.0-pra12

Beberapa kemas kini utama kepada perpustakaan penyahkodan imej SAIL telah diterbitkan, menyediakan penulisan semula C bagi codec daripada pemapar imej KSquirrel yang telah lama tidak berfungsi, tetapi dengan API abstrak peringkat tinggi dan banyak peningkatan. Perpustakaan sedia untuk digunakan, tetapi masih dipertingkatkan secara berterusan. Keserasian binari dan API masih belum terjamin. Demonstrasi.

Ciri-ciri SAIL

  • Perpustakaan yang pantas dan mudah digunakan;
  • Ditulis dalam C11 dengan pengikatan kepada C++17;
  • Sokongan untuk format imej dilaksanakan oleh codec yang dimuatkan secara dinamik, yang boleh dialih keluar dan ditambah secara bebas daripada sisi klien;
  • Membaca daripada fail, ingatan, sumber sendiri;
  • Sokongan untuk imej berbilang halaman dan animasi;
  • Sokongan untuk format popular masih dilakukan menggunakan perpustakaan yang sepadan libjpeg, libpng, dsb.
  • Cross-platform: Linux, Windows, macOS;
  • "Probing" - mendapatkan maklumat tentang imej tanpa menyahkod piksel;
  • Nama entiti manusia (tiada FIMULTIBTMAP);
  • Membaca dan menulis profil ICC;
  • Menghantar piksel RGBA atau BGRA;
  • Mengembalikan piksel asal (contohnya, CMYK) jika disokong oleh codec;

Senarai perubahan sejak penerbitan terakhir:

  • API telah dipertingkatkan dan dipermudahkan dengan ketara. Was: struct sail_context *context; SAIL_TRY(sail_init(&konteks)); struct sail_image *imej; aksara yang tidak ditandatangani *image_pixels; SAIL_TRY(sail_read(laluan, konteks, &imej, (kosong **)&image_pixels)); ...percuma(gambar_piksel); belayar_memusnahkan_imej(imej);

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

  • Menambahkan format BMP, GIF, TIFF;
  • Ketersediaan dalam VCPKG pada semua platform kecuali UWP;
  • Ujian prestasi penanda aras diterbitkan;
  • Pengikatan C++ telah dialihkan ke C++17;
  • Fungsi peruntukan memori dikumpulkan di satu tempat supaya ia boleh digantikan dengan mudah dengan anda sendiri, tetapi pada masa ini ini hanya boleh dilakukan dengan menyusun semula;
  • Pengguna kini boleh menggunakan CMake find_package() untuk menyambung SAIL;
  • Menambah keupayaan untuk menyusun secara statik (SAIL_STATIC=ON);
  • Menambah keupayaan untuk menyusun semua codec ke dalam satu perpustakaan biasa (SAIL_COMBINE_CODECS=ON);
  • Kerja telah bermula untuk menambah ujian berasaskan Β΅nit;

Kaedah pemasangan yang disyorkan

  • Linux - vcpkg, peraturan Debian juga tersedia
  • Windows - vcpkg
  • macOS - bru

Sumber: opennet.ru

Tambah komen