PHP ၏ GD စာကြည့်တိုက်ကိုပုံရိပ်ထုတ်ယူခြင်းအတွက် PHPP ၏ GD စာကြည့်တိုက်ကိုအသုံးပြုသောအခါ imagecolorallocealpha () function ကိုအသုံးပြုလေ့ရှိသည်။ သို့သော်အချို့ဖြစ်ရပ်များတွင်သင်သည်ဤလုပ်ဆောင်မှုမှတစ်ဆင့်ပုံတစ်ပုံသို့အရောင်တစ်ခုသတ်မှတ်သောအခါအရောင်သွေဖည်သည့်ပြ a နာတစ်ခုနှင့်သင်ကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည်ဘုံပြ problems နာအချို့နှင့်၎င်းတို့၏ဖြေရှင်းနည်းများကိုစူးစမ်းလေ့လာပါမည်။
အဆိုပါ imagecolorallocatealpha () function ကို၏ syntax အောက်ပါအတိုင်းဖြစ်သည် -
int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha);
ဤလုပ်ဆောင်ချက်သည်သတ်မှတ်ထားသောပုံသို့အရောင်များကိုသတ်မှတ်ရန်အသုံးပြုသည်။ အရောင်တန်ဖိုးကိုအနီရောင်, အစိမ်း, အပြာ (RGB) လိုင်းများနှင့်ပွင့်လင်းမြင်သာမှု ( alpha ) မှတဆင့်သတ်မှတ်သည်။ သို့သော်လက်တွေ့တွင်, သင် RGB နှင့် alpha တန်ဖိုးများကိုမှန်ကန်စွာဖြတ်သန်းလျှင်ပင်ပုံရှိအရောင်များသည်သင်မျှော်လင့်ထားသည့်အရောင်များနှင့်ကွဲပြားနိုင်သည်ကိုသင်တွေ့ရှိနိုင်သည်။
အရောင်သွေဖည်ခြင်း၏အကြောင်းရင်းများသည်များသောအားဖြင့်အောက်ပါအခြေအနေများကြောင့်ဖြစ်သည်။
ကွဲပြားခြားနားသောအရောင်နေရာများ - ပုံ၏အရောင်နေရာသည်သင်သတ်မှတ်ထားသော RGB တန်ဖိုးနှင့်မကိုက်ညီပါ။ အချို့ဖြစ်ရပ်များတွင်အရောင်အကွာအဝေး compression သို့မဟုတ် color mapping တွင်ကွဲပြားခြားနားမှုများရှိနိုင်သည်။
ပွင့်လင်းမြင်သာမှုနှင့်အရောင်ရောနှောခြင်း - isionecolorallocealpha () function မှသတ်မှတ်ထားသောအရောင်သည်အခြားပုံရိပ်ရှိအခြား pixels များရောနှောခြင်းအရောင်ကိုမယူပါ,
GD စာကြည့်တိုက်၏ဗားရှင်းပြ problems နာများ - GD စာကြည့်တိုက်၏ကွဲပြားခြားနားသော GD စာကြည့်တိုက်ဗားရှင်းများသည်ကွဲပြားခြားနားသောအရောင်အသွေးစုံလင်သောနည်းလမ်းများရှိနိုင်သည်။
အရောင်သွေဖွားပြ problems နာများကိုရှောင်ရှားရန်အောက်ပါနည်းလမ်းများကိုသင်ကြိုးစားနိုင်သည်။
ISACOSORRESOLVEALIFLA () function သည် isionecolorallocealpha () နှင့်အလွန်ဆင်တူသည်။ သို့သော်၎င်းသည်သင့်အတွက်အနီးဆုံးအရောင်တန်ဖိုးကိုအလိုအလျောက်ရွေးချယ်သည်။
$color = imagecolorresolvealpha($image, $red, $green, $blue, $alpha);
ဤနည်းလမ်းသည်အရောင်များကိုပုံရိပ်ပတ်ဝန်းကျင်တွင်ပိုမိုကောင်းမွန်စွာလုပ်ဆောင်နိုင်ကြောင်းသေချာစေသည်။
သင်၏ပုံရိပ်ကိုပွင့်လင်းမြင်သာမှုကိုသင်သာဂရုစိုက်ပါကသင်၏ပုံ၏ပုံရိပ်ကိုနောက်ခံပွင့်လင်းမြင်သာမှုကိုဖော်ပြပါ။ ဤနည်းအားဖြင့်သင်သည်အခြားအရောင်များပေါ်တွင်ပွင့်လင်းမြင်သာမှု၏သက်ရောက်မှုကိုလျှော့ချနိုင်ပြီးပိုမိုတည်ငြိမ်သောရလဒ်များရရှိစေသည်။
imagealphablending($image, false); // hybrid mode ကိုပိတ်ပါ
imagesavealpha($image, true); // Transparency သတင်းအချက်အလက်ကိုသိမ်းပါ
ပွင့်လင်းမြင်သာမှုရောနှောခြင်းကြောင့်ဖြစ်ပေါ်လာသောအရောင်ဘက်လိုက်မှုပြ problems နာများကိုရှောင်ရှားရန်ဤကုဒ်သည်သင့်အားကူညီနိုင်သည်။
တစ်ခါတစ်ရံတွင်ပုံ၏အရောင် mode သည်ပွင့်လင်းမြင်သာမှုကိုထောက်ပံ့သော RGBA သို့မဟုတ်အခြား mode တစ်ခုမဟုတ်ပါ။ အကယ်. ပုံသည်အရောင်ဖျော့ဖျော့အရောင်ကိုအသုံးပြုနေပါက Imagecolorallocatealpha () သည် အရောင်ကိုမှန်ကန်စွာမကိုင်တွယ်နိုင်ပါ။ ပုံသည် TRUECORECOLOR စနစ်ဖြစ်ကြောင်းသေချာပါစေနှင့်အလားတူပြ problems နာများစွာကိုရှောင်ရှားနိုင်သည်။
if (imagetypes() & IMG_TRUECOLOR) {
imagepalettetotruecolor($image); // အရောင် palette ကိုပြောင်းပါ TrueColor ပုံစံ
}
အကယ်. သင်၏ GD စာကြည့်တိုက်ဗားရှင်းသည်သက်ကြီးရွယ်အိုများရှိပါကမလျော်ကန်သောပွင့်လင်းမြင်သာမှုကိုင်တွယ်မှုနှင့်ပြ problems နာများရှိနိုင်သည်။ နောက်ဆုံးပေါ်စာကြည့်တိုက်၏နောက်ဆုံးထွက်ဗားရှင်းသို့အဆင့်မြှင့်တင်ရန်ကြိုးစားခြင်းသည်ဗားရှင်းအသစ်တွင်အရောင်လိုက်ဖက်သည့်ကိစ္စများစွာကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခဲ့သည်။
အောက်ပါ command ကိုအသုံးပြုပြီးလက်ရှိတပ်ဆင်ထားသည့် GD စာကြည့်တိုက်ကိုသင်စစ်ဆေးနိုင်သည်။
echo gd_info();
စာကြည့်တိုက်ဗားရှင်းသည်အသက်ကြီးလွန်းကြောင်းသင်တွေ့ရှိပါက Package Manager သို့မဟုတ် recompilation မှတဆင့်နောက်ဆုံးပေါ်ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်စဉ်းစားပါ။
ISECOLORALOCALEALEALPA ကို အသုံးပြု. ပွင့်လင်းမြင်သာမှုနှင့်အတူအရောင်တင်ရန်လိုအပ်သည့်ပုံရိပ်တစ်ခုရှိသည်ဆိုပါစို့။ တိကျမှန်ကန်သောအရောင်ပြန်ဆိုချက်များကိုမည်သို့သေချာစေရမည်ကိုကုဒ်ဥပမာတစ်ခုရှိသည်။
<?php
$image = imagecreatetruecolor(400, 400);
imagealphablending($image, false); // hybrid mode ကိုပိတ်ပါ
imagesavealpha($image, true); // Transparency သတင်းအချက်အလက်ကိုသိမ်းပါ
$red = 255;
$green = 0;
$blue = 0;
$alpha = 50; // Transparency တန်ဖိုးကိုသတ်မှတ်ပါ
// အသုံးပြု imagecolorallocatealpha အရောင်များကိုသတ်မှတ်ပါ
$color = imagecolorallocatealpha($image, $red, $green, $blue, $alpha);
// ပွင့်လင်းမြင်သာမှုနှင့်စတုဂံဆွဲပါ
imagefilledrectangle($image, 50, 50, 350, 350, $color);
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
// မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်
imagedestroy($image);
?>
အထက်ပါကုဒ်များဖြင့်ပုံရိပ်၏ပွင့်လင်းမြင်သာမှုကိုမှန်ကန်စွာလုပ်ဆောင်နိုင်ပြီးအရောင်သည်သွေဖည်မထားကြောင်းသေချာစေနိုင်သည်။
အဆိုပါ Imagecolorallalletocatealpha () function သည် PHP တွင်ပွင့်လင်းမြင်သာသောအရောင်များကိုဖန်တီးရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်, ရုပ်ပုံ၏အရောင် mode, transparency settings နှင့်၎င်းကိုအသုံးပြုသောအခါ GD စာကြည့်တိုက်ဗားရှင်းကိုအထူးဂရုပြုပါ။ အထက်ပါဖြေရှင်းချက်မှတစ်ဆင့်အရောင်သွေဖည်သည့်ပြ issues နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးပုံ၏ရလဒ်ကိုမျှော်လင့်ချက်များနှင့်အညီဖြစ်ကြောင်းသေချာစေနိုင်သည်။