แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ 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 *context; SAIL_TRY(sail_init(&context)); struct sail_image *image; แƒฎแƒ”แƒšแƒ›แƒแƒฃแƒฌแƒ”แƒ แƒ”แƒšแƒ˜ char *image_pixels; SAIL_TRY(sail_read(แƒ’แƒ–แƒ, แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ˜, &แƒกแƒฃแƒ แƒแƒ—แƒ˜, (แƒ‘แƒแƒ—แƒ˜แƒšแƒ˜ **)&image_pixels)); ...แƒฃแƒคแƒแƒกแƒ (แƒกแƒฃแƒ แƒแƒ—แƒ˜_แƒžแƒ˜แƒฅแƒกแƒ”แƒšแƒ˜); sail_Destroy_image(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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ