ИздаванС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния SAIL 0.9.0-pre12

Бяха ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ няколко Π³ΠΎΠ»Π΅ΠΌΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° изобраТСния SAIL, прСдоставящи прСнаписванС Π½Π° C Π½Π° ΠΊΠΎΠ΄Π΅Ρ†ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΎΡ‚Π΄Π°Π²Π½Π° Π½Π΅ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° изобраТСния KSquirrel, Π½ΠΎ с абстрактСн API Π½Π° високо Π½ΠΈΠ²ΠΎ ΠΈ мноТСство подобрСния. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π΅ Π³ΠΎΡ‚ΠΎΠ²Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Π½ΠΎ всС ΠΎΡ‰Π΅ сС подобрява Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ. Π”Π²ΠΎΠΈΡ‡Π½Π°Ρ‚Π° ΠΈ API ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π°. ДСмонстрация.

Π₯арактСристики Π½Π° SAIL

  • Π‘ΡŠΡ€Π·Π° ΠΈ лСсна Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°;
  • Написан Π½Π° C11 с ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ към C++17;
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π·Π°Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΊΠΎΠ΄Π΅Ρ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚ ΠΈ добавят нСзависимо ΠΎΡ‚ клиСнтската страна;
  • Π§Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ», ΠΏΠ°ΠΌΠ΅Ρ‚, собствСни ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ;
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° многостранични ΠΈ Π°Π½ΠΈΠΌΠΈΡ€Π°Π½ΠΈ изобраТСния;
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° популярни Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ всС ΠΎΡ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libjpeg, libpng ΠΈ Π΄Ρ€.
  • ΠšΡ€ΠΎΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ: Linux, Windows, macOS;
  • β€žΠ‘ΠΎΠ½Π΄ΠΈΡ€Π°Π½Π΅β€œ - ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° информация Π·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° пиксСли;
  • ИмСна Π½Π° Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ (Π±Π΅Π· FIMULTIBITMAP);
  • Π§Π΅Ρ‚Π΅Π½Π΅ ΠΈ писанС Π½Π° ICC ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ;
  • Π˜Π·ΠΏΡ€Π°Ρ‰Π° RGBA ΠΈΠ»ΠΈ BGRA пиксСли;
  • Π’Ρ€ΡŠΡ‰Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈ пиксСли (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CMYK), Π°ΠΊΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ ΠΊΠΎΠ΄Π΅ΠΊΠ°;

Бписък Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΡ‚ послСдната публикация:

  • API Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ ΠΈ опростСн. Π‘Π΅ΡˆΠ΅: struct sail_context *контСкст; SAIL_TRY(sail_init(&контСкст)); struct sail_image *ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅; unsigned char *image_pixels; SAIL_TRY(sail_read(path, context, &image, (void **)&image_pixels)); ... free(image_pixels); sail_destroy_image(ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅);

    Π‘Π΅Π³Π°: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(image);

  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ BMP, GIF, TIFF Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ;
  • Наличност във VCPKG Π½Π° всички ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° UWP;
  • ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ сравнитСлни тСстовС Π·Π° СфСктивност;
  • C++ ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π΅ прСмСстСно Π² C++17;
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° са ΡΡŠΠ±Ρ€Π°Π½ΠΈ Π½Π° Π΅Π΄Π½ΠΎ място, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ лСсно Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ със собствСни, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° станС само Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅;
  • ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ CMake find_package() Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° SAIL;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° статично ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ (SAIL_STATIC=ON);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° всички ΠΊΠΎΠ΄Π΅Ρ†ΠΈ Π² Π΅Π΄Π½Π° ΠΎΠ±Ρ‰Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (SAIL_COMBINE_CODECS=ON);
  • Π—Π°ΠΏΠΎΡ‡Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ добавянС Π½Π° тСстовС, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Β΅nit;

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° инсталиранС

  • Linux - vcpkg, ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° Debian ΡΡŠΡ‰ΠΎ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ
  • Windows - vcpkg
  • macOS - варя

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€