SAIL ရုပ်ပုံကုဒ်ဒစ်ဂျစ်တိုက် ရနိုင်ပါသည်။

MIT လိုင်စင်အောက်တွင် ပုံနှိပ်ထုတ်ဝေ ဖြတ်ကျော်-ပလပ်ဖောင်း ရုပ်ပုံကုဒ်ဖြင့် ရေးထားသော စာကြည့်တိုက် SAIL။ SAIL သည် C တွင် ကြာရှည်စွာ ပံ့ပိုးမထားသော ရုပ်ပုံကြည့်ရှုသူမှ ကုဒ်ဒစ်များကို ပြန်လည်တံဆိပ်ခတ်ခြင်းဖြစ်သည် KSquirrelအဆင့်မြင့် abstract API နှင့် များစွာသော တိုးတက်မှုများဖြင့်။ ပစ်မှတ်ထားသော ပရိသတ်- ရုပ်ပုံကြည့်ရှုသူများ၊ ဂိမ်းတည်ဆောက်မှု၊ အခြားရည်ရွယ်ချက်များအတွက် ပုံများကို မှတ်ဉာဏ်ထဲသို့ တင်ခြင်း။ စာကြည့်တိုက်သည် ဖွံ့ဖြိုးဆဲဖြစ်သော်လည်း အသုံးပြုနိုင်နေပြီဖြစ်သည်။ Binary နှင့် source code လိုက်ဖက်ညီမှုကို ဖွံ့ဖြိုးတိုးတက်မှု၏ ဤအဆင့်တွင် အာမခံချက်မရှိပါ။

အင်္ဂါရပ်များ:

  • ပြင်ပအဖွဲ့အစည်းကို မှီခိုမှုမရှိဘဲ C ဖြင့်ရေးထားသော ရိုးရှင်း၊ ကျစ်လစ်ပြီး မြန်ဆန်သော စာကြည့်တိုက် (ကုဒ်ဒစ်မှလွဲ၍)၊
  • ရိုးရှင်းသော၊ နားလည်နိုင်သောနှင့် တစ်ချိန်တည်းတွင် လိုအပ်ချက်အားလုံးအတွက် အစွမ်းထက် API;
  • C++ အတွက် ချည်နှောင်မှုများ၊
  • ရုပ်ပုံဖော်မတ်များကို ဒိုင်းနမစ်ဖြင့် တင်ထားသော ကုဒ်ဒစ်များဖြင့် ပံ့ပိုးထားသည်။
  • ဖိုင်တစ်ခု၊ မမ်မိုရီ သို့မဟုတ် သင့်ကိုယ်ပိုင်ဒေတာရင်းမြစ်မှ ပုံများကို ဖတ်ခြင်း (ရေးသားခြင်း)။
  • ဖိုင်တိုးချဲ့မှုအားဖြင့် ရုပ်ပုံအမျိုးအစားကို သတ်မှတ်ခြင်း သို့မဟုတ် ပြုလုပ်ခြင်း မှော်နံပါတ်;
  • လက်ရှိပံ့ပိုးထားသော ဖော်မတ်များ- png (ဖတ်ပါ၊ Windows သီးသန့်)၊ JPEG (ဖတ်၊ ရေး) PNG (ဖတ်၊ ရေး)။
    ဖော်မတ်အသစ်များထည့်ရန် အလုပ်က လုပ်ဆောင်နေပါသည်။ KSquirrel-libs သည် တစ်နည်းမဟုတ်တစ်နည်းဖြင့် ဖော်မတ် 60 ခန့်ကို ပံ့ပိုးပေးသည်၊ လူကြိုက်အများဆုံး ဖော်မတ်များသည် လိုင်းတွင် ပထမဆုံးဖြစ်သည်။

  • Read operations သည် pixels များကို RGB နှင့် RGBA ဖော်မတ်ဖြင့် အမြဲတမ်းထုတ်ပေးနိုင်သည်။
  • အချို့သောကုဒ်ဒစ်များသည် ပိုမိုကြီးမားသော ဖော်မတ်စာရင်းတွင် pixels များကို ထုတ်နိုင်သည်။
  • ကုဒ်ဒစ်အများစုသည် SOURCE ပစ်ဇယ်များကိုလည်း ထုတ်နိုင်သည်။ ဥပမာ၊ CMYK သို့မဟုတ် YCCK ပုံများမှ အချက်အလက်အပြည့်အစုံကို ရယူလိုသူများအတွက် အသုံးဝင်ပါသည်။
  • ICC ပရိုဖိုင်များကို ဖတ်ခြင်းနှင့် ရေးသားခြင်း၊
  • C၊ Qt၊ SDL တွင် နမူနာများ၊
  • ပံ့ပိုးထားသောပလက်ဖောင်းများ
    Windows (installer)၊ macOS (brew) နှင့် Linux (Debian)။

SAIL က မပံ့ပိုးပေးတဲ့အရာ

  • ပုံတည်းဖြတ်ခြင်း;
  • နောက်ခံကုဒ်ဒစ်များ (libjpeg, etc.);
  • အရောင်စီမံခန့်ခွဲမှုလုပ်ဆောင်ချက်များ (ICC ပရိုဖိုင်များအသုံးပြုခြင်း စသည်)

C တွင် ကုဒ်ဆွဲခြင်း၏ အရိုးရှင်းဆုံး ဥပမာ

struct sail_context *context;

SAIL_TRY(sail_init(&context));

struct sail_image *image;
လက်မှတ်မထိုးထားသော char *image_pixels;

SAIL_TRY(sail_read(လမ်းကြောင်း၊
ဆက်စပ်အခြေအနေ
&ပုံ၊
(ပျက်ပြယ် **)&image_pixels));

/*
* ဤနေရာတွင် လက်ခံရရှိသည့် pixels များကို လုပ်ဆောင်ပါ။
* ဒါကိုလုပ်ဖို့၊ image->width၊ image->height, image->bytes_per_line၊
* နှင့် image->pixel_format။
*/

/* သန့်ရှင်းရေးလုပ်သည် */
အခမဲ့(ရုပ်ပုံ_pixels);
sail_destroy_image(ရုပ်ပုံ);

API အဆင့်များ၏ အကျဉ်းချုပ် ဖော်ပြချက်-

  • အသစ်- "ကျွန်တော် ဒီ JPEG ကို ဒေါင်းလုဒ်ဆွဲချင်တယ်"
  • အဆင့်မြင့်- "ဒီကာတွန်း GIF ကို မန်မိုရီကနေ တင်ချင်တယ်"
  • ရေနက်ပိုင်းရေငုပ်သမား- "ကျွန်တော် ဒီကာတွန်း GIF ကို မန်မိုရီကနေ တင်ချင်တာဖြစ်ပြီး ကျွန်တော်ရွေးချယ်တဲ့ codecs နဲ့ pixel output ကို အပြည့်အဝ ထိန်းချုပ်ထားပါတယ်။"
  • နည်းပညာပိုင်းဆိုင်ရာ ရေငုပ်သမား- "အထက်ကအရာအားလုံးကို ငါလိုချင်တယ်၊ ငါ့ကိုယ်ပိုင်ဒေတာအရင်းအမြစ်"

တူညီသောနယ်ပယ်မှ တိုက်ရိုက်ပြိုင်ဖက်များ

  • FreeImage
  • DevIL
  • SDL_ပုံ
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

အခြားစာကြည့်တိုက်များနှင့် ကွာခြားချက်များ-

  • မျှော်လင့်ထားသည့်အရာများပါရှိသော Human API - ရုပ်ပုံများ၊ ပျဉ်ချပ်များ စသည်တို့။
  • ကုဒ်ဒရိုက်အများစုသည် RGB/RGBA ပစ်ဇယ်များထက် ပိုထုတ်နိုင်သည်။
  • ကုဒ်ဒရိုက်အများစုသည် RGB သို့မပြောင်းဘဲ မူရင်း pixel များကို ထုတ်နိုင်သည်။
  • သင်သည် မည်သည့်ဘာသာစကားဖြင့်မဆို ကုဒ်ဒစ်များကို ရေးသားနိုင်ပြီး ပရောဂျက်တစ်ခုလုံးကို ပြန်လည်ပေါင်းစည်းခြင်းမပြုဘဲ ၎င်းတို့ကို ပေါင်းထည့်/ဖယ်ရှားနိုင်သည်။
  • မူရင်းပုံနှင့်ပတ်သက်သည့် အချက်အလက်ကို ထိန်းသိမ်းပါ။
  • “Probing” သည် pixel ဒေတာကို ကုဒ်ဖော်ခြင်းမပြုဘဲ ရုပ်ပုံတစ်ခုနှင့် ပတ်သက်သော အချက်အလက်များကို ရယူသည့် လုပ်ငန်းစဉ်ဖြစ်သည်။
  • အရွယ်အစားနှင့် မြန်နှုန်း။

source: opennet.ru

မှတ်ချက် Add