လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Imagecolorallocealpha () သည် PNG ပုံစံများနှင့်မကိုက်ညီပါ

Imagecolorallocealpha () သည် PNG ပုံစံများနှင့်မကိုက်ညီပါ

M66 2025-06-05

PHP Image processing လုပ်စဉ်အတွင်း Imagecolorallocealpha () function ကိုပုံရိပ်သို့ပွင့်လင်းမြင်သာမှုရှိရန်အသုံးပြုသည်။ သို့သော် developer များစွာသည်ပြ that နာကိုကြုံတွေ့ရနိုင်သည်မှာပုံရိပ်များရှိ function ကို png format ဖြင့်အသုံးပြုသောအခါ၎င်းသည်စနစ်တကျအလုပ်လုပ်ပုံမပေါ်ပါ။ ဤဆောင်းပါးသည်ဤသို့ဖြစ်ပျက်ရသည့်အကြောင်းရင်းများကိုရှင်းပြရန်နှင့်နောက်ကွယ်မှအကြောင်းပြချက်များကိုရှင်းပြရန်ကြိုးစားပါလိမ့်မည်။

ISEACOLORALOCALEALEALEALPHA () function ကိုအသုံးပြုခြင်း

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

 int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha);
  • $ Image : ပုံရိပ်အရင်းအမြစ်ကိုပစ်မှတ်ထားသည်။

  • $ အနီရောင် , $ အစိမ်းရောင် , $ အပြာ - RGB Connents (0 မှ 255) ။

  • $ alpha : Transparency (0 လုံးဝမဖွင့်နိုင်, 127 လုံးလုံးပွင့်လင်းမြင်သာမှုရှိပါသည်) ။

အကယ်. ပုံဖော်ခြင်းသည် Transparency ကိုထောက်ပံ့နိုင်ပါကဤ function ကိုပွင့်လင်းမြင်သာမှုရှိစေရန်အတွက်ပွင့်လင်းမြင်သာမှုရှိစေရန်အသုံးပြုနိုင်သည်။

လိုက်ဖက်တဲ့မေးခွန်း - PNG format သည်အဘယ်ကြောင့်အသုံးမပြုနိုင်သနည်း။

ပြ the နာအတွက်သော့ချက်ကရုပ်ပုံပုံစံတွေကိုထောက်ခံပါတယ်။ PNG သည်ပွင့်လင်းမြင်သာမှုသတင်းအချက်အလက်များကိုသိုလှောင်ရန် Alpha Channel ကိုအသုံးပြုသောပွင့်လင်းမြင်သာသောပုံစံဖြစ်သည်။ သို့သော် JPEG နှင့် GIF ကဲ့သို့သောအခြားဘုံပုံရိပ်များသည် alpha chinnel သို့မဟုတ် transparency ကိုအပြည့်အဝလုပ်ဆောင်နိုင်စွမ်းကိုမထောက်ပံ့ပါ။

1 ။ JPEG ပုံစံသည်ပွင့်လင်းမြင်သာမှုကိုမထောက်ခံပါ

JPEG သည်ပွင့်လင်းမြင်သာမှုနှင့်မကိုက်ညီပါကဒီဇိုင်းပြုလုပ်ထားသော compression format ဖြစ်သည်။ ထို့ကြောင့် JPEG ပုံရိပ်များတွင် isionecolorallocealpha () isionecolorallocealpha () ၏ပွင့်လင်းမြင်သာမှု parametery ကိုလျစ်လျူရှုထားသည်။ ဤလုပ်ဆောင်မှုမှတစ်ဆင့်ပွင့်လင်းမြင်သာမှုရှိလျှင်ပင်ပုံသည်မျှော်လင့်ထားသည့်အကျိုးသက်ရောက်မှုမရှိပါ။ ပွင့်လင်းမြင်သာ pixels ကို opaque အရောင်များအဖြစ်လုပ်ကိုင်နေကြသည်။

2 ။ GIF ပုံစံသည်ပွင့်လင်းမြင်သာမှုကိုထောက်ပံ့သည်

GIF format သည်ပွင့်လင်းမြင်သာသောအရောင်များကိုထောက်ပံ့သော်လည်း (I.E. တစ်ခုတည်းသောပွင့်လင်းမြင်သာသော pixel) ကိုထောက်ပံ့သော်လည်း PNG ကဲ့သို့သော alpha changels များကိုမထောက်ပံ့ပါ။ GIF ပုံရိပ်များသည်ပွင့်လင်းမြင်သာမှုသို့မဟုတ် pixel တစ်ခုလျှင်လုံးလုံးပွင့်လင်းမြင်သာမှုကိုသာထောက်ပံ့ပေးပြီးတစ်စိတ်တစ်ပိုင်းပွင့်လင်းမြင်သာမှုမရှိနိုင်ပါ။ ထို့ကြောင့်, Imagecolorallocealpha () တွင် alpha parameter သည် GIF ပုံရိပ်များအတွက်အကန့်အသတ်ရှိသည်။

3 ။ မှတ်ဉာဏ်နှင့်ပုံအမျိုးအစားများကိုကန့်သတ်ချက်များ

ထို့အပြင်အချို့သောပုံအမျိုးအစားများ (ဥပမာ JPEG ကဲ့သို့သော JPEG) သည်အတွင်းပိုင်းအပြောင်းအလဲများကြောင့်အကန့်အသတ်ဖြင့်ပွင့်လင်းမြင်သာမှုကိုမှန်ကန်စွာထောက်ခံနိုင်မည်မဟုတ်ပါ။ ပွင့်လင်းမြင်သာမှုကို isagrecolorallocatealpha () မှတဆင့် code ကို code တွင်သတ်မှတ်ထားလျှင်ပင်ဤပုံအမျိုးအစားများပွင့်လင်းမြင်သာ pixels မှန်ကန်စွာကိုင်တွယ်မည်မဟုတ်ပါ။

ဖြေရှင်းချက် - Imagecolorallocatealpha ကို ဘယ်လိုသုံးရမလဲ။

Imagecolorallocatealealpha () စနစ်တကျအလုပ်လုပ်ရန် alpha channel, အထူးသဖြင့် PNG format ကိုထောက်ပံ့သောပုံရိပ်ပုံစံကိုအသုံးပြုရန်အကြံပြုသည်။ ဒီမှာဥပမာတစ်ခုပါ။

 <?php
// a 100x100 ၏ PNG အရုပ်
$image = imagecreatetruecolor(100, 100);

// ဖွင့်လှစ် alpha ရုပ်သံခန်း
imagesavealpha($image, true);

// 分配带有透明度၏颜色
$transparent_color = imagecolorallocatealpha($image, 255, 0, 0, 50);

// 填充အရုပ်背景为该透明颜色
imagefill($image, 0, 0, $transparent_color);

// output ကိုဖြစ်ပါတယ် PNG ပမာဏ
header('Content-Type: image/png');
imagepng($image);

// အရင်းအမြစ်များကိုသန့်ရှင်းရေး
imagedestroy($image);
?>

အကျဉ်းချုပ်

အဆိုပါ imagecoloralletocatealpha () function ကိုပုံမှန်အားဖြင့် PNG formats တွင်ပုံမှန်အားဖြင့်အသုံးမပြုပါ။ အဓိကအားဖြင့်ပုံရိပ်ပုံစံ၏ကန့်သတ်ချက်များကြောင့်ဖြစ်သည်။ JPEG သည်ပွင့်လင်းမြင်သာမှုကိုမထောက်ခံပါ။ GIF တစ်ခုတည်းသည်ပွင့်လင်းမြင်သာသော pixel ကိုသာထောက်ပံ့ပေးပြီး PNG ကဲ့သို့သောပွင့်လင်းမြင်သာသောလမ်းကြောင်းများကိုမထောက်ပံ့နိုင်ပါ။ ပွင့်လင်းမြင်သာမှုအကျိုးသက်ရောက်မှုကိုအသုံးပြုရန်လိုအပ်ပါက Transparency (ဥပမာ PNG ကဲ့သို့သော transparency ကိုထောက်ပံ့သောပုံရိပ်ပုံစံကိုရွေးချယ်ပါ။