เดธเต†เดฏเดฟเตฝ เด‡เดฎเต‡เดœเต เดกเต€เด•เต‹เดกเดฟเด‚เด—เต เดฒเตˆเดฌเตเดฐเดฑเดฟ เดฒเดญเตเดฏเดฎเดพเดฃเต

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

เด…เดตเดธเดฐเด™เตเด™เตพ:

  • เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเดฟเดฒเตเดฒเดพเดคเต† (เด•เต‹เดกเต†เด•เตเด•เตเด•เตพ เด’เดดเดฟเด•เต†) เดธเดฟเดฏเดฟเตฝ เดŽเดดเตเดคเดฟเดฏ เดฒเดณเดฟเดคเดตเตเด‚ เด’เดคเตเด•เตเด•เดฎเตเดณเตเดณเดคเตเด‚ เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏเดคเตเดฎเดพเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟ;
  • เดŽเดฒเตเดฒเดพ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เตเด‚ เดฒเดณเดฟเดคเดตเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเด‚ เด…เดคเต‡ เดธเดฎเดฏเด‚ เดถเด•เตเดคเดตเตเดฎเดพเดฏ API;
  • C++ เดจเตเดณเตเดณ เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เตพ;
  • เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เดฒเต‹เดกเตเดšเต†เดฏเตโ€Œเดค เด•เต‹เดกเต†เด•เตเด•เตเด•เตพ เด‡เดฎเต‡เดœเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต;
  • เด’เดฐเต เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดกเดพเดฑเตเดฑเดพ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดตเดพเดฏเดฟเด•เตเด•เตเด• (เดŽเดดเตเดคเตเด•);
  • เดซเดฏเตฝ เดŽเด•เตเดธเตเดฑเตเดฑเตปเดทเตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเดดเดฟ เด‡เดฎเต‡เดœเต เดคเดฐเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต เดฎเดพเดจเตเดคเตเดฐเดฟเด• เดธเด‚เด–เตเดฏ;
  • เดจเดฟเดฒเดตเดฟเตฝ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพ: เดŽ.เดชเดฟ.เดŽเตป.เดœเดฟ (เดตเดพเดฏเดฟเด•เตเด•เตเด•, เดตเดฟเตปเดกเต‹เดธเต เดฎเดพเดคเตเดฐเด‚), JPEG (เดตเดพเดฏเดฟเด•เตเด•เตเด•, เดŽเดดเตเดคเตเด•) PNG (เดตเดพเดฏเดฟเด•เตเด•เตเด•, เดŽเดดเตเดคเตเด•).
    เดชเตเดคเดฟเดฏ เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดจเดŸเด•เตเด•เตเดจเตเดจเต. KSquirrel-libs เดเด•เดฆเต‡เดถเด‚ 60 เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เดณเต† เด’เดฐเต เดคเดฐเดคเตเดคเดฟเดฒเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดคเดฐเดคเตเดคเดฟเตฝ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต, เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพ เด†เดฆเตเดฏเด‚ เดตเดฐเดฟเดฏเดฟเดฒเดพเดฃเต;

  • เดฑเต€เดกเต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ RGB, RGBA เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดชเดฟเด•เตเดธเดฒเตเด•เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚;
  • เดšเดฟเดฒ เด•เต‹เดกเต†เด•เตเด•เตเด•เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดฒเดฟเดฏ เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เดณเดฟเตฝ เดชเดฟเด•เตเดธเดฒเตเด•เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚;
  • เดฎเดฟเด•เตเด• เด•เต‹เดกเต†เด•เตเด•เตเด•เตพเด•เตเด•เตเด‚ SOURCE เดชเดฟเด•เตเดธเดฒเตเด•เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, CMYK เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ YCCK เด‡เดฎเต‡เดœเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเดดเตเดตเตป เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดฒเดญเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดตเตผเด•เตเด•เต;
  • เดเดธเดฟเดธเดฟ เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดŽเดดเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•;
  • C, Qt, SDL เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ;
  • เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเตเด•เตพ:
    เดตเดฟเตปเดกเต‹เดธเต (เด‡เตปเดธเตเดฑเตเดฑเดพเดณเตผ), เดฎเดพเด•เต‹เดธเต (เดฌเตเดฐเต‚), เดฒเดฟเดจเด•เตเดธเต (เดกเต†เดฌเดฟเดฏเตป).

SAIL เดŽเดจเตเดคเดพเดฃเต เดจเตฝเด•เดพเดคเตเดคเดคเต:

  • เด‡เดฎเต‡เดœเต เดŽเดกเดฟเดฑเตเดฑเดฟเด‚เด—เต;
  • เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เต‹เดกเต†เด•เตเด•เตเด•เตพ (libjpeg, เดฎเตเดคเดฒเดพเดฏเดต) เดจเตฝเด•เตเดจเตเดจเดต เด’เดดเดฟเด•เต†เดฏเตเดณเตเดณ เด•เดณเตผ เดธเตเดชเต‡เดธเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ;
  • เด•เดณเตผ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดซเด‚เด—เตเดทเดจเตเด•เตพ (เดเดธเดฟเดธเดฟ เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เดฎเตเดคเดฒเดพเดฏเดต)

เดธเดฟเดฏเดฟเดฒเต† เดกเต€เด•เต‹เดกเดฟเด‚เด—เดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเด‚:

struct sail_context * เดธเดจเตเดฆเตผเดญเด‚;

SAIL_TRY(sail_init(& เดธเดจเตเดฆเตผเดญเด‚));

struct sail_image *เดšเดฟเดคเตเดฐเด‚;
เด’เดชเตเดชเดฟเดŸเดพเดคเตเดค char *image_pixels;

SAIL_TRY(เด•เดชเตเดชเตฝ_เดตเดพเดฏเดจ(เดชเดพเดค,
เดธเดจเตเดฆเตผเดญเด‚,
&เดšเดฟเดคเตเดฐเด‚,
(เด…เดธเดพเดงเตเดตเดพเดฏ **)&image_pixels));

/*
* เด‡เดตเดฟเดŸเต† เดธเตเดตเต€เด•เดฐเดฟเดšเตเดš เดชเดฟเด•เตเดธเดฒเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด•.
* เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เด‡เดฎเต‡เดœเต-> เดตเต€เดคเดฟ, เด‡เดฎเต‡เดœเต-> เด‰เดฏเดฐเด‚, เด‡เดฎเต‡เดœเต->เดฌเตˆเดฑเตเดฑเตเด•เตพ_เดชเต†เตผ_เดฒเตˆเตป,
* เด’เดชเตเดชเด‚ เด‡เดฎเต‡เดœเต-> pixel_format.
*/

/* เด•เตเดฒเต€เดจเดชเตเดชเต */
เดธเตเดตเดคเดจเตเดคเตเดฐ (image_pixels);
sail_destroy_image(เดšเดฟเดคเตเดฐเด‚);

API เดฒเต†เดตเดฒเตเด•เดณเตเดŸเต† เดธเด‚เด•เตเดทเดฟเดชเตเดค เดตเดฟเดตเดฐเดฃเด‚:

  • เดชเตเดคเตเดฎเตเด–เด‚: "เดŽเดจเดฟเด•เตเด•เต เดˆ JPEG เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดฃเด‚"
  • เดตเดฟเดชเตเดฒเดฎเดพเดฏเดคเต: "เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดˆ เด†เดจเดฟเดฎเต‡เดฑเตเดฑเดกเต GIF เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต"
  • เดกเต€เดชเต เดธเต€ เดกเตˆเดตเตผ: "เดŽเดจเดฟเด•เตเด•เต เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดˆ เด†เดจเดฟเดฎเต‡เดฑเตเดฑเดกเต GIF เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดžเดพเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเต†เด•เตเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดชเดฟเด•เตเดธเตฝ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเตเดฑเต†เดฏเตเด‚ เดฎเต‡เตฝ เดชเต‚เตผเดฃเตเดฃ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดตเตเด‚ เดตเต‡เดฃเด‚."
  • เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดกเตˆเดตเตผ: "เดŽเดจเดฟเด•เตเด•เต เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเด‚ เดŽเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดกเดพเดฑเตเดฑ เด‰เดฑเดตเดฟเดŸเดตเตเด‚ เดตเต‡เดฃเด‚"

เด’เดฐเต‡ เดฎเต‡เด–เดฒเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดฎเดคเตเดธเดฐเดพเตผเดคเตเดฅเดฟเด•เตพ:

  • เดซเตเดฐเต€ เด‡เดฎเต‡เดœเต
  • เดกเต†เดตเดฟเตพ
  • SDL_เดšเดฟเดคเตเดฐเด‚
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

เดฎเดฑเตเดฑเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เตพ:

  • เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเตเดณเตเดณ เดนเตเดฏเต‚เดฎเตป API - เด‡เดฎเต‡เดœเตเด•เตพ, เดชเดพเดฒเดฑเตเดฑเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต.
  • เดฎเดฟเด•เตเด• เด•เต‹เดกเต†เด•เตเด•เตเด•เตพเด•เตเด•เตเด‚ RGB/RGBA เดชเดฟเด•เตเดธเดฒเตเด•เดณเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.
  • เดฎเดฟเด•เตเด• เด•เต‹เดกเต†เด•เตเด•เตเด•เตพเด•เตเด•เตเด‚ RGB-เดฏเดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเดคเต† เดคเดจเตเดจเต† เดฏเดฅเดพเตผเดคเตเดฅ เดชเดฟเด•เตเดธเดฒเตเด•เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚.
  • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดเดคเต เดญเดพเดทเดฏเดฟเดฒเตเด‚ เด•เต‹เดกเต†เด•เตเด•เตเด•เตพ เดŽเดดเตเดคเดพเด‚, เด•เต‚เดŸเดพเดคเต† เดฎเตเดดเตเดตเตป เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดคเต† เดคเดจเตเดจเต† เด…เดต เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.
  • เดฏเดฅเดพเตผเดคเตเดฅ เดšเดฟเดคเตเดฐเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเด•.
  • เดชเดฟเด•เตเดธเตฝ เดกเดพเดฑเตเดฑ เดกเต€เด•เต‹เดกเต เดšเต†เดฏเตเดฏเดพเดคเต† เด’เดฐเต เดšเดฟเดคเตเดฐเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเต‡เดŸเตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดพเดฃเต "เดชเตเดฐเต‹เดฌเดฟเด‚เด—เต".
  • เดตเดฒเดฟเดชเตเดชเดตเตเด‚ เดตเต‡เด—เดคเดฏเตเด‚.

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

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