SAIL 0.9.0 — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° дСкодирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

БСгодня, Π² дСнь 20-лСтия SAIL — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ дСкодирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для C/C++ — Π²Ρ‹ΡˆΠ΅Π» Ρ€Π΅Π»ΠΈΠ· 0.9.0.

ДСмонстрационный ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚: https://sail.software/demo.webp

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности:

  1. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ уровня API для Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… Π½ΡƒΠΆΠ΄.

Π‘Π°ΠΌΡ‹ΠΉ Π½Π΅Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ погруТСния — junior, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Ρ€Π΅ΠΉΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… строчСк ΠΊΠΎΠ΄Π°:

struct sail_image *image; SAIL_TRY(sail_load_from_file(path, &image));

Π‘Π°ΠΌΡ‹ΠΉ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ погруТСния — Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ многостраничных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· нСстандартных источников (Π½Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ памяти).

  1. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ памяти ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ.
  2. ДинамичСски ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠ΄Π΅ΠΊΠΈ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄Π΅ΠΊΠΈ Π² ΠΎΠ΄Π½Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (-DSAIL_COMBINE_CODECS=ON) Ссли динамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Π°.
  3. Написана на C11 с биндингом на C++11.
  4. Доступна Π½Π° Windows, Linux, macOS.
  5. Доступна Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°Ρ… Conan, vcpkg, brew (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ PR ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ слияния).
  6. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС соврСмСнныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ: JPEG, PNG, TIFF, GIF, AVIF, WEBP, JPEG XL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.
  7. БыстрСС ΠΏΠΎΡ‡Ρ‚ΠΈ всСх своих ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² Π² Π»ΠΈΡ†Π΅ STB ΠΈΠ»ΠΈ FreeImage.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru