SAIL image decoding library အတွက် အဓိက အပ်ဒိတ်များစွာကို ထုတ်ဝေခဲ့ပြီး ကြာမြင့်စွာသုံးနေသည့် KSquirrel ရုပ်ပုံကြည့်ရှုသူထံမှ C ကုဒ်များကို ပြန်လည်ရေးသားခြင်းဖြစ်သော်လည်း အဆင့်မြင့်မားသော abstract API နှင့် များစွာသော တိုးတက်မှုများဖြင့် ထုတ်ဝေထားပါသည်။ စာကြည့်တိုက်သည် အသုံးပြုရန် အဆင်သင့်ဖြစ်နေပြီဖြစ်သော်လည်း စဉ်ဆက်မပြတ် မြှင့်တင်နေဆဲဖြစ်သည်။ Binary နှင့် API လိုက်ဖက်မှုကို အာမခံချက်မရှိသေးပါ။ သရုပ်ပြ။
SAIL ၏အင်္ဂါရပ်များ
- စာကြည့်တိုက်ကို မြန်ဆန်ပြီး အသုံးပြုရလွယ်ကူသည်။
- C11 တွင် C++17 ကို ချိတ်တွဲ၍ ရေးသားထားသည်။
- ရုပ်ပုံဖော်မတ်များအတွက် ပံ့ပိုးမှုကို ကုဒ်ဒရိုက်စနစ်ဖြင့် တင်ဆောင်ထားသည့် ကုဒ်ဒစ်များဖြင့် အကောင်အထည် ဖော်ထားပြီး၊ ကုဒ်ဒရိုက်များကို ဖယ်ရှားနိုင်ပြီး ဖောက်သည်ဘက်မှ သီးခြားစီ ထည့်သွင်းနိုင်သည်။
- ဖိုင်၊ မှတ်ဉာဏ်၊ ကိုယ်ပိုင်ရင်းမြစ်များမှ စာဖတ်ခြင်း
- စာမျက်နှာပေါင်းများစွာနှင့် ကာတွန်းရုပ်ပုံများအတွက် ပံ့ပိုးမှု။
- သက်ဆိုင်ရာ စာကြည့်တိုက်များ libjpeg၊ libpng စသည်တို့ကို အသုံးပြု၍ လူကြိုက်များသော ဖော်မတ်များအတွက် ပံ့ပိုးမှုကို လုပ်ဆောင်နေဆဲဖြစ်သည်။
- ပလပ်ဖောင်း- Linux၊ Windows၊ macOS၊
- "စုံစမ်းခြင်း" - pixels ကို decoding မလုပ်ဘဲ ရုပ်ပုံတစ်ခုအကြောင်း အချက်အလက်ရယူခြင်း၊
- လူ့အဖွဲ့အစည်းအမည်များ (FIMULTIBITMAP မရှိပါ);
- ICC ပရိုဖိုင်များကို ဖတ်ခြင်းနှင့် ရေးသားခြင်း၊
- RGBA သို့မဟုတ် BGRA ပစ်ဇယ်များကို ပေးပို့သည်။
- codec မှပံ့ပိုးထားလျှင် မူရင်း pixels (ဥပမာ၊ CMYK) ကို ပြန်ပေးသည်။
နောက်ဆုံးထုတ်ဝေပြီးကတည်းက အပြောင်းအလဲများစာရင်း-
- API ကို သိသိသာသာ မြှင့်တင်ပြီး ရိုးရှင်းအောင် ပြုလုပ်ထားသည်။ Was: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *image; လက်မှတ်မထိုးထားသော char *image_pixels; SAIL_TRY(sail_read(လမ်းကြောင်း၊ အကြောင်းအရာ၊ &ပုံ၊ (ပျက်ပြယ် **)&image_pixels)); ... အခမဲ့(image_pixels); sail_destroy_image(ရုပ်ပုံ);
ယခု- struct sail_image *image; SAIL_TRY(sail_read_file(လမ်းကြောင်း၊ &image); ... sail_destroy_image(ရုပ်ပုံ);
- BMP၊ GIF၊ TIFF ဖော်မတ်များ ထည့်ထားသည်။
- UWP မှလွဲ၍ ပလက်ဖောင်းအားလုံးတွင် VCPKG တွင်ရရှိနိုင်မှု။
- Benchmark စွမ်းဆောင်ရည် စမ်းသပ်မှုများကို ထုတ်ပြန်ခြင်း၊
- C++ binding ကို C++17 သို့ ရွှေ့ထားသည်။
- Memory ခွဲဝေခြင်းလုပ်ဆောင်ချက်များကို တစ်နေရာတည်းတွင် စုစည်းထားသောကြောင့် ၎င်းတို့ကို သင့်ကိုယ်ပိုင်ဖြင့် အလွယ်တကူ အစားထိုးနိုင်သော်လည်း ယခုအချိန်တွင် ပြန်လည်စုစည်းခြင်းဖြင့်သာ လုပ်ဆောင်နိုင်မည်ဖြစ်သည်။
- အသုံးပြုသူများသည် SAIL ကိုချိတ်ဆက်ရန် CMake find_package() ကို ယခုအသုံးပြုနိုင်ပါပြီ။
- ကိန်းဂဏာန်းစုစည်းနိုင်မှုအား ပေါင်းထည့်ခဲ့သည် (SAIL_STATIC=ON);
- ဘုံဒစ်ဂျစ်တိုက်တစ်ခုထဲသို့ ကုဒ်ဒစ်များအားလုံးကို စုစည်းရန် စွမ်းရည်ကို ပေါင်းထည့်ခဲ့သည် (SAIL_COMBINE_CODECS=ON);
- µnit-based စမ်းသပ်မှုများကို ထည့်သွင်းခြင်းတွင် အလုပ်စတင်ခဲ့သည်။
တပ်ဆင်နည်းကို အကြံပြုထားသည်။
- Linux - vcpkg၊ Debian စည်းမျဉ်းများကိုလည်း ရရှိနိုင်ပါသည်။
- Windows - vcpkg
- macOS - ခေါင်ရည်
source: opennet.ru