Китобхонаи рамзкушоии тасвири SAIL дастрас аст

Дар доираи иҷозатномаи MIT нашр шудааст китобхонаи рамзкушоӣ тасвир салиб-платформаи SAIL. SAIL ин ребрендинги кодекҳо аз як намоишгари тасвирҳои дароз дастгирӣнашаванда дар C аз нав навишта шудааст. KSquirrel, аммо бо API абстрактии сатҳи баланд ва такмилоти сершумор. Шунавандагони мақсаднок: тамошобинони тасвир, таҳияи бозӣ, бор кардани тасвирҳо ба хотира барои мақсадҳои дигар. Китобхона дар ҳоли таҳия аст, аммо аллакай қобили истифода аст. Мутобиқати дуӣ ва коди ибтидоӣ дар ин марҳилаи рушд кафолат дода намешавад.

Хусусиятҳои:

  • Китобхонаи оддӣ, паймон ва зуд, ки дар C бидуни вобастагӣ аз тарафи сеюм навишта шудааст (ба истиснои кодекҳо);
  • API оддӣ, фаҳмо ва ҳамзамон пурқувват барои ҳама ниёзҳо;
  • Пайвастшавӣ барои C++;
  • Форматҳои тасвирро кодекҳои динамикӣ боршуда дастгирӣ мекунанд;
  • Тасвирҳоро аз файл, хотира ё ҳатто манбаи маълумоти шахсии худ хонед (ва нависед);
  • Муайян кардани намуди тасвир аз рӯи васеъшавии файл ё аз ҷониби рақами ҷодугарӣ;
  • Форматҳои дар айни замон дастгирӣшаванда: png (хондан, танҳо Windows), JPEG (хондан, навиштан) PNG (хондан, навиштан).
    Кор барои илова кардани форматҳои нав идома дорад. KSquirrel-libs тақрибан 60 форматро бо ин ё он роҳ дастгирӣ мекарданд, форматҳои маъмултарин дар навбати аввал мебошанд;

  • Амалиёти хониш ҳамеша метавонад пикселҳоро дар формати RGB ва RGBA барорад;
  • Баъзе кодекҳо метавонанд пикселҳоро дар рӯйхати боз ҳам калонтари форматҳо баровард;
  • Аксари кодекҳо инчунин метавонанд пикселҳои SOURCE бароварда шаванд. Ин, масалан, барои онҳое, ки мехоҳанд аз тасвирҳои CMYK ё YCCK маълумоти пурра гиранд, муфид аст;
  • Хондан ва навиштани профилҳои ICC;
  • Намунаҳо дар C, Qt, SDL;
  • Платформаҳои дастгирӣ:
    Windows (насбкунанда), macOS (брав) ва Linux (Debian).

Чизе, ки SAIL пешниҳод намекунад:

  • Таҳрири тасвир;
  • Функсияҳои табдилдиҳии фазои ранг, ғайр аз вазифаҳое, ки аз ҷониби кодекҳои асосӣ (libjpeg ва ғайра) таъмин карда мешаванд;
  • Функсияҳои идоракунии ранг (истифодаи профилҳои ICC ва ғ.)

Намунаи оддии рамзкушоӣ дар C:

struct sail_context *контекст;

SAIL_TRY(sail_init(&контекст));

struct sail_image *тасвир;
аломати беимзо *image_pixels;

SAIL_TRY(сайл_хондан(роҳ,
контекст,
&тасвир,
(беэътибор **) & тасвир_пиксел));

/*
* Дар ин ҷо пикселҳои гирифташударо коркард кунед.
* Барои ин, тасвир->бар, тасвир->баландӣ, тасвир->байт_ҳар_сатро истифода баред,
* ва тасвир-> формати пиксел.
*/

/* Поккорӣ */
озод (тасвир_пиксел);
sail_destroy_image(тасвир);

Тавсифи мухтасари сатҳҳои API:

  • Навбиё: "Ман танҳо мехоҳам ин JPEG-ро зеркашӣ кунам"
  • Мукаммал: "Ман мехоҳам ин GIF-и мутаҳаррикро аз хотира бор кунам"
  • Ғаввоси баҳри амиқ: "Ман мехоҳам ин GIF-и мутаҳаррикро аз хотира бор кунам ва аз болои кодекҳо ва баромади пикселҳое, ки ман интихоб мекунам, пурра назорат кунам."
  • Ғаввоси техникӣ: "Ман ҳама чизро дар боло ва манбаи маълумоти шахсии худро мехоҳам"

Рақибони мустақим аз як минтақа:

  • FreeImage
  • DevIL
  • SDL_Image
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Тафовут аз китобхонаҳои дигар:

  • API-и инсонӣ бо объектҳои интизорӣ - тасвирҳо, палитраҳо ва ғайра.
  • Аксари кодекҳо метавонанд на танҳо пикселҳои RGB/RGBA бештар бароянд.
  • Аксари кодекҳо метавонанд пикселҳои аслиро бидуни табдил ба RGB баровард.
  • Шумо метавонед кодекҳоро бо дилхоҳ забон нависед ва инчунин онҳоро бе аз нав тартиб додани тамоми лоиҳа илова/нест кунед.
  • Маълумотро дар бораи тасвири аслӣ нигоҳ доред.
  • "Таҳлил" раванди ба даст овардани маълумот дар бораи тасвир бидуни рамзкушоӣ кардани маълумоти пиксел мебошад.
  • Андоза ва суръат.

Манбаъ: opennet.ru

Илова Эзоҳ