ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° слики SAIL 0.9.0-pre12

ОбјавСни сС Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π·Π½Π°Ρ‡Π°Ρ˜Π½ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° слики SAIL, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Ρ˜ΡœΠΈ C ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄Π΅Ρ†ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΎΠ΄Π°ΠΌΠ½Π° нСпостоСчкиот ΠΏΡ€Π΅Π³Π»Π΅Π΄ΡƒΠ²Π°Ρ‡ Π½Π° слики KSquirrel, Π½ΠΎ со апстрактСн API Π½Π° високо Π½ΠΈΠ²ΠΎ ΠΈ Π±Ρ€ΠΎΡ˜Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ°. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, Π½ΠΎ сè ΡƒΡˆΡ‚Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°. ΠšΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ‚Π° со Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΈ API сè ΡƒΡˆΡ‚Π΅ Π½Π΅ Π΅ Π·Π°Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½Π°. Π”Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π°.

ΠšΠ°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΡΡ‚ΠΈΠΊΠΈ Π½Π° ΠΏΠ»ΠΎΠ²ΠΈ

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

Бписок Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΠ΄ послСдното ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅:

  • API Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ ΠΈ поСдноставСн. Π‘Π΅ΡˆΠ΅: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *слика; Π½Π΅ΠΏΠΎΡ‚ΠΏΠΈΡˆΠ°Π½ Π·Π½Π°ΠΊ *слика_пиксСли; SAIL_TRY(sail_read (ΠΏΠ°Ρ‚Π΅ΠΊΠ°, контСкст, &слика, (ΠΏΡ€Π°Π·Π½ΠΈΠ½Π° **)&слика_пиксСли)); ...бСсплатно(слика_пиксСли); sail_destroy_image(слика);

    Π‘Π΅Π³Π°: struct sail_image *image; SAIL_TRY(sail_read_file(ΠΏΠ°Ρ‚Π΅ΠΊΠ°, &слика); ... 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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€