เด‡เดฎเต‡เดœเต เดกเต€เด•เต‹เดกเดฟเด‚เด—เต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เดชเตเดฐเด•เดพเดถเดจเด‚ SAIL 0.9.0-pre12

SAIL เด‡เดฎเต‡เดœเต เดกเต€เด•เต‹เดกเดฟเด‚เด—เต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดงเดพเดจ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด•เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต, เดฆเต€เตผเด˜เด•เดพเดฒเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฏ KSquirrel เด‡เดฎเต‡เดœเต เดตเตเดฏเต‚เดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต‹เดกเต†เด•เตเด•เตเด•เดณเตเดŸเต† เด’เดฐเต C เดฑเต€เดฑเตˆเดฑเตเดฑเดฟเด‚เด—เต เดจเตฝเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เด…เดฌเตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตเดฑเตเดฑเต API เด•เต‚เดŸเดพเดคเต† เดจเดฟเดฐเดตเดงเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเตเด•เตพ. เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเต เดคเดฏเตเดฏเดพเดฑเดพเดฃเต, เดชเด•เตเดทเต‡ เด‡เดชเตเดชเต‹เดดเตเด‚ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเด•เตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต. เดฌเตˆเดจเดฑเดฟ, API เด…เดจเตเดฏเต‹เดœเตเดฏเดค เด‡เดคเตเดตเดฐเต† เด‰เดฑเดชเตเดชเตเดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดชเตเดฐเด•เดŸเดจเด‚.

เดธเต†เดฏเดฟเดฒเดฟเดจเตเดฑเต† เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ

  • เดตเต‡เด—เดฎเต‡เดฑเดฟเดฏเดคเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณเดคเตเดฎเดพเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟ;
  • C++11 เดฒเต‡เด•เตเด•เต เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต C17 เตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต;
  • เด‡เดฎเต‡เดœเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดกเตˆเดจเดพเดฎเดฟเด•เต เดฒเต‹เดกเดกเต เด•เต‹เดกเต†เด•เตเด•เตเด•เตพ เดตเดดเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด•เตเดฒเดฏเดจเตเดฑเต เดตเดถเดคเตเดคเต เดจเดฟเดจเตเดจเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏเดฟ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚;
  • เดซเดฏเตฝ, เดฎเต†เดฎเตเดฎเดฑเดฟ, เดธเตเดตเดจเตเดคเด‚ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดพเดฏเดจ;
  • เดฎเตพเดŸเตเดŸเดฟ-เดชเต‡เดœเต, เด†เดจเดฟเดฎเต‡เดฑเตเดฑเดกเต เด‡เดฎเต‡เดœเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ;
  • เดœเดจเดชเตเดฐเดฟเดฏ เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เด‡เดชเตเดชเต‹เดดเตเด‚ เด…เดจเตเดฌเดจเตเดง เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ libjpeg, libpng เดฎเตเดคเดฒเดพเดฏเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต.
  • เด•เตเดฐเต‹เดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚: Linux, Windows, macOS;
  • โ€œเดชเตเดฐเต‹เดฌเดฟเด‚เด—เตโ€ - เดชเดฟเด•เตเดธเดฒเตเด•เตพ เดกเต€เด•เต‹เดกเต เดšเต†เดฏเตเดฏเดพเดคเต† เด’เดฐเต เดšเดฟเดคเตเดฐเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเต‡เดŸเตเดจเตเดจเต;
  • เดนเตเดฏเต‚เดฎเตป เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟ เดชเต‡เดฐเตเด•เตพ (เดซเดฟเดฎเตพเดŸเตเดŸเดฟเดฌเดฟเดฑเตเดฑเตโ€Œเดฎเดพเดชเตเดชเต เด‡เดฒเตเดฒ);
  • เดเดธเดฟเดธเดฟ เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดŽเดดเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•;
  • RGBA เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ BGRA เดชเดฟเด•เตเดธเดฒเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต;
  • เด•เต‹เดกเต†เด•เต เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดฏเดฅเดพเตผเดคเตเดฅ เดชเดฟเด•เตเดธเดฒเตเด•เตพ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, CMYK) เดจเตฝเด•เตเดจเตเดจเต;

เด•เดดเดฟเดžเตเดž เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเต เดถเต‡เดทเดฎเตเดณเตเดณ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•:

  • API เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เด†เดฏเดฟเดฐเตเดจเตเดจเต: struct sail_context *context; SAIL_TRY(sail_init(& เดธเดจเตเดฆเตผเดญเด‚)); struct sail_image *เดšเดฟเดคเตเดฐเด‚; เด’เดชเตเดชเดฟเดŸเดพเดคเตเดค char *image_pixels; SAIL_TRY(sail_read(เดชเดพเดค, เดธเดจเตเดฆเตผเดญเด‚, &เดšเดฟเดคเตเดฐเด‚, (เด…เดธเดพเดงเต **)&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 เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพ เดšเต‡เตผเดคเตเดคเต;
  • UWP เด’เดดเดฟเด•เต†เดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเตเด•เดณเดฟเดฒเตเด‚ VCPKG-เตฝ เดฒเดญเตเดฏเดค;
  • เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เต เดชเตเดฐเด•เดŸเดจ เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต;
  • C++ เดฌเตˆเตปเดกเดฟเด‚เด—เต C++17-เดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟ;
  • เดฎเต†เดฎเตเดฎเดฑเดฟ เด…เดฒเต‹เด•เตเด•เต‡เดทเตป เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เด’เดฐเดฟเดŸเดคเตเดคเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เด…เดต เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเดพเดฏเดฟ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เด‡เดคเต เดตเต€เดฃเตเดŸเตเด‚ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดฎเดพเดคเตเดฐเดฎเต‡ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเต‚;
  • เดธเต†เดฏเดฟเตฝ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ CMake find_package() เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚;
  • เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดšเต‡เตผเดคเตเดคเต (SAIL_STATIC=ON);
  • เดŽเดฒเตเดฒเดพ เด•เต‹เดกเต†เด•เตเด•เตเด•เดณเตเด‚ เด’เดฐเต เดชเตŠเดคเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดšเต‡เตผเดคเตเดคเต (SAIL_COMBINE_CODECS=ON);
  • ยตnit เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด†เดฐเด‚เดญเดฟเดšเตเดšเต;

เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดฐเต€เดคเดฟ

  • Linux - vcpkg, Debian เดจเดฟเดฏเดฎเด™เตเด™เดณเตเด‚ เดฒเดญเตเดฏเดฎเดพเดฃเต
  • เดตเดฟเตปเดกเต‹เดธเต - vcpkg
  • macOS - brew

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•