Առկա է 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 (brew) և Linux (Debian):

Ինչ Sail-ը չի տրամադրում.

  • Պատկերի խմբագրում;
  • Գունային տարածության փոխակերպման գործառույթներ, բացառությամբ հիմքում ընկած կոդեկների (libjpeg և այլն) տրամադրված գործառույթների.
  • Գույնի կառավարման գործառույթներ (ICC պրոֆիլների օգտագործում և այլն)

C-ում վերծանման ամենապարզ օրինակը.

struct sail_context *context;

SAIL_TRY(sail_init(&context));

struct sail_image *image;
չստորագրված char *image_pixels;

SAIL_TRY(sail_read(ուղի,
համատեքստ,
&պատկեր,
(անվավեր **)&image_pixels));

/*
* Այստեղ մշակեք ստացված պիքսելները:
* Դա անելու համար օգտագործեք image->width, image->height, image->bytes_per_line,
* և պատկեր->պիքսել_ֆորմատ:
*/

/* Մաքրում */
անվճար (image_pixels);
sail_destroy_image (պատկեր);

API մակարդակների համառոտ նկարագրություն.

  • Նորեկ. «Ես պարզապես ուզում եմ ներբեռնել այս JPEG-ը»
  • Ընդլայնված. «Ես ուզում եմ բեռնել այս անիմացիոն GIF-ը հիշողությունից»
  • «Ես ուզում եմ բեռնել այս անիմացիոն GIF-ը հիշողությունից և լիովին վերահսկել իմ ընտրած կոդեկները և պիքսելները»:
  • Տեխնիկական ջրասուզակ. «Ես ուզում եմ վերը նշված ամեն ինչ և իմ սեփական տվյալների աղբյուրը»

Ուղղակի մրցակիցներ նույն տարածքից.

  • Free Image
  • Սատանա
  • SDL_Image
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Տարբերությունները այլ գրադարաններից.

  • Մարդկային API սպասվող սուբյեկտներով՝ պատկերներ, գունապնակներ և այլն:
  • Կոդեկների մեծամասնությունը կարող է արտադրել ոչ միայն RGB/RGBA պիքսելներ:
  • Կոդեկներից շատերը կարող են արտածել բնօրինակ պիքսելներ՝ առանց RGB-ի փոխակերպման:
  • Դուք կարող եք գրել կոդեկներ ցանկացած լեզվով, ինչպես նաև ավելացնել/հեռացնել դրանք՝ առանց ամբողջ նախագիծը վերակազմավորելու:
  • Պահպանեք բնօրինակ պատկերի մասին տեղեկությունները:
  • «Զոնդավորումը» պատկերի մասին տեղեկատվություն ստանալու գործընթաց է՝ առանց պիքսելային տվյալների վերծանման:
  • Չափը և արագությունը:

Source: opennet.ru

Добавить комментарий