ရုပ်ပုံကုဒ်ဒစ်ဂျစ်တိုက်၏ SAIL 0.9.0-pre12 ထုတ်ဝေခြင်း။

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

မှတ်ချက် Add