လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> appha ကို setting isionecolorallocatealealpha function ကိုအသုံးပြုသောအခါဘာကြောင့်မမှန်ကန်ကြောင်းကိုဘာကြောင့်မမှန်ကန်ကြောင်းသတ်မှတ်ရတာလဲ။

appha ကို setting isionecolorallocatealealpha function ကိုအသုံးပြုသောအခါဘာကြောင့်မမှန်ကန်ကြောင်းကိုဘာကြောင့်မမှန်ကန်ကြောင်းသတ်မှတ်ရတာလဲ။

M66 2025-06-23

PHP တွင် Image processing လုပ်သည့်အခါ Imagecolorallocatealpha () သည်အလွန်အရေးကြီးသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်အရောင်များကိုသတ်မှတ်ရုံသာမကပွင့်လင်းမြင်သာမှုကိုလည်းထိန်းချုပ်သည်။ သို့သော် developer များစွာသည်ပုံမှန်မဟုတ်သည့်ပုံကြမ်းပွင့်လင်းမြင်သာမှုပြ problems နာများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။

ဤဆောင်းပါးသည်ဤပြ problem နာကိုအသေးစိတ်လေ့လာရန်ဤ ပြ problem နာကိုအသေးစိတ်လေ့လာလိမ့်မည်။

1 ?? Imagecolorallocatealpha ၏ function ကို ()

imagecolorallocatealpha () ကို GD စာကြည့်တိုက်အခြေပြုရုပ်ပုံများကိုပွင့်လင်းမြင်သာမှုနှင့်အတူအရောင်များကိုသတ်မှတ်ရန်အသုံးပြုသည်။
၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

parameter သည်ဖော်ပြချက်:

  • $ Image : ImageCreate () သို့မဟုတ် imagecreatetuecolor () မှဖန်တီးထားသောပုံရိပ်အရင်းအမြစ်တစ်ခု။

  • $ အနီရောင် , $ အစိမ်းရောင် , $ အပြာ : RGB အရောင်အစိတ်အပိုင်းများ, 0-255 အကွာအဝေး။

  • $ Alpha : Transparency တန်ဖိုး 0-127 အထိ။

မှတ်စု: alpha သည် 0 မှ 255 မဟုတ်ဘဲ 0 (လုံးဝမအောင်မြင်ပါ) 127 (လုံးဝပွင့်လင်းမြင်သာမှု) အထိဖြစ်သည်

2 ?? ဘုံ alpha ချိန်ညှိချက်များအမှားအယွင်းများ

developer များစွာကိုပထမဆုံးအမှားလုပ်မိသောအမှားမှာ - alpha ၏တန်ဖိုးသည် RGB ကဲ့သို့ 0-255 ဖြစ်သည်ဟုသူတို့ထင်သော်လည်း၎င်းတို့သည် 255 သို့တိုက်ရိုက်ပစ္စည်းပစ္စယများဖြစ်သည်။

ဥပမာတစ်ခုကိုကြည့်ရအောင်။

 <?php
$img = imagecreatetruecolor(200, 200);
$color = imagecolorallocatealpha($img, 255, 0, 0, 255); // အမှား

ALPHA set သည် 255 နှစ်ရှိပြီ 255 နှစ်ရှိပြီး GD စာကြည့်တိုက်သည် 127 အထိသာလက်ခံသည်။ အဘယ်ကြောင့်ဆိုသော်၎င်းသည်အကွာအဝေးမှ ထွက်. GD သည် 127 အဖြစ်ဆက်ဆံလိမ့်မည်။

မှန်ကန်သောအရေးအသား -

 <?php
$img = imagecreatetruecolor(200, 200);
$color = imagecolorallocatealpha($img, 255, 0, 0, 0); // opacity အနီရောင်
$semi_transparent = imagecolorallocatealpha($img, 255, 0, 0, 64); // အနီရောင်အနီရောင်

3 ?? ဘာကြောင့်မှားသောချိန်ညှိချက်များပွင့်လင်းမြင်သာမှုကိုအကျိုးသက်ရောက်သနည်း။

ဘာဖြစ်လို့လဲဆိုတော့ GD စာကြည့်တိုက်က alpha value ကိုဒီနည်းနဲ့နားလည်ထားလို့ပဲ။

  • 0: လုံးဝ opaque

  • 127: လုံးဝပွင့်လင်း

အကယ်. သင်သည် 255 ကိုဖြည့်ပါက GD သည် MIN ($ alpha, 127) ကို သုံးလိမ့်မည်။ ဆိုလိုသည်မှာအများဆုံးပွင့်လင်းမြင်သာမှုအဖြစ်မှတ်ယူလိမ့်မည်။ ဤသည်ကို ဦး ဆောင်:

  • ငါမူလကအနီရောင်ဆွဲချင်တယ်, ဒါပေမယ့်ငါမမြင်ရဘူး

  • ငါမူလက translucent ဆွဲချင်တယ်, ဒါပေမယ့်လုံးဝပွင့်လင်းမြင်သာမှုရှိဖို့ထွက်လှည့်။

4 ?? ပွင့်လင်းမြင်သာမှုကိုဘယ်လိုမှန်ကန်စွာထိန်းချုပ်နိုင်မလဲ။

? သတိရ: alpha range သည် 0-127 မဟုတ်ဘဲ 0-1255 ဖြစ်သည်။

အကယ်. သင် (CSS သို့မဟုတ် RGBA သာမန်တန်ဖိုးများကဲ့သို့) Transparency Designs ကိုအသုံးပြုပါကပြောင်းလဲခြင်းပြုလုပ်ရန်လိုအပ်သည်။

 $css_alpha = 128; // ယူဆသော 0–255 ညှစ်
$gd_alpha = intval(127 * (255 - $css_alpha) / 255); // ကူးပြောင်း GD အသုံးပြုတန်ဖိုးကို

၎င်းသည် PHP တွင်တသမတ်တည်းပွင့်လင်းမြင်သာမှုရှိစေရန်သေချာစေလိမ့်မည်။

5 ?? ဥပမာ - Translucent PNG ကိုဖန်တီးပါ

ဤအရာအားလုံးကိုပြည့်စုံသောဥပမာတစ်ခုဖြင့်အတူတကွကြိုးချကြပါစို့။