လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Imagecolorallocealpha () function ကိုအသုံးပြုသောအခါ Imagecolarealpha () function ကိုအသုံးပြုသောအခါအဘယ်ကြောင့်မေ့လျော့သည်ကိုမေ့လျော့သည်?

Imagecolorallocealpha () function ကိုအသုံးပြုသောအခါ Imagecolarealpha () function ကိုအသုံးပြုသောအခါအဘယ်ကြောင့်မေ့လျော့သည်ကိုမေ့လျော့သည်?

M66 2025-06-23

PHP ကိုအသုံးပြုမှုအတွက် PHP ကိုအသုံးပြုသောအခါ GD စာကြည့်တိုက်သည် imagecolorallocatealpha () သည်အရောင်အသွေးစုံလင်သောအရောင်များကိုသတ်မှတ်ခြင်းအတွက်စွမ်းဆောင်နိုင်မှုများစွာကိုပေးသည်။ ၎င်းကိုအသုံးပြုသောအခါပွင့်လင်းမြင်သာသောအရောင်သတ်မှတ်ထားသည့်တိုင်သိမ်းဆည်းထားသော PNG သို့မဟုတ် GIF ဖိုင်များသည်လုံးဝမမြင်နိုင်ပါ။ ဒါဘာကြောင့်လဲ ပြ problem နာအတွက်သော့ချက်မှာအခြားလုပ်ဆောင်ချက်တစ်ခုတွင်အလွယ်တကူသတိမမူမိသည့်အခြားလုပ်ဆောင်ချက်တစ်ခုတွင်ရှိသည်။ ImagesaveAnpha ()

1 ။ Imagecolorallocatealpha ကိုနားလည်ပါ။

ISEACOLORALOCALEALEALEPER () ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 $image = imagecreatetruecolor(200, 200);
$transparentColor = imagecolorallocatealpha($image, 255, 0, 0, 127); // နီသော,လုံးဝပွင့်လင်း

၎င်း၏သတ်မှတ်ချက်များတွင်အနီရောင်, အစိမ်း, ဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းသည် Translucc စတုဂံများ, စာသားစသည့်ပုံပေါ်တွင်ပွင့်လင်းမြင်သာသောဒြပ်စင်များကိုဆွဲဆောင်နိုင်သည်။

သို့သော်ဤလုပ်ဆောင်မှု သည်အရောင်များကိုခွဲဝေချထားပေးရန်အတွက်သာတာ 0 န်ရှိသည် ။ GD စာကြည့်တိုက်ကို "alpha channel ကို output လုပ်ပါ" ကိုအလိုအလျောက်မပြောပါနှင့်။

2 ။ အဘယ်ကြောင့် imagesavealpha () လိုအပ်ပါသည်

ဤသည် Imagesavealpha () က:

 imagesavealpha($image, true);

ဤလုပ်ဆောင်ချက်ကိုသင်ခေါ်ဆိုသောအခါ GD စာကြည့်တိုက်သည် PNG (သို့မဟုတ်ပွင့်လင်းမြင်သာသောအခြားပုံစံများ) output လုပ်သည့်အခါ alpha channel ၏အချက်အလက်များကိုထိန်းသိမ်းထားသည်။ အကယ်. ၎င်းကိုမဖွင့်ပါက GD သည်ပွင့်လင်းမြင်သာသော area ရိယာကို alpha (များသောအားဖြင့်အနက်ရောင်သို့မဟုတ်အဖြူရောင်) မပါ 0 င်ပါ။

တစ်နည်းပြောရရင်တော့:
? imagecolorallocatealpha () →→အရောင်၏ပွင့်လင်းမြင်သာသောအစိတ်အပိုင်းကိုသတ်မှတ်ပါ
?? သို့သော်၎င်းသည် ပွင့်လင်းမြင်သာသောသတင်းအချက်အလက်များကိုဖိုင်သို့အလိုအလျောက်ထိန်းသိမ်းထားခြင်းမရှိပါ။

3 ။ ပြီးပြည့်စုံသောဥပမာတစ်ခု

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

 <?php
// ပတ်တူဖန်တီးပါ
$image = imagecreatetruecolor(200, 200);

// ဖွင့်လှစ် alpha Channel Saving
imagesavealpha($image, true);

// 创建一个လုံးဝပွင့်လင်း的背景色
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);

// နောက်ခံဖြည့်ပါ
imagefill($image, 0, 0, $transparent);

// 画一个半透明的နီသော矩形
$red = imagecolorallocatealpha($image, 255, 0, 0, 63);
imagefilledrectangle($image, 50, 50, 150, 150, $red);

// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);

// မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်
imagedestroy($image);
?>

အကယ်. သင်သည် Imagesavealpha ကို ဖယ်ရှားပါ ကသိမ်းဆည်းထားသော PNG ဖိုင်၏ပွင့်လင်းမြင်သာသော area ရိယာကိုတိုက်ရိုက်ဆုံးရှုံးသွားလိမ့်မည်။

4 ။ ဖိုင်ကိုသိမ်းဆည်းခြင်းဥပမာ

ပုံကို browser ကို output လုပ်မယ့်အစားဖိုင်ကိုဖိုင်တစ်ခုအဖြစ်သိမ်းချင်ရင်မင်းလုပ်နိုင်တယ်။