PHP တွင် GD စာကြည့်တိုက်ကိုပုံရိပ်များပြုလုပ်ရန်အတွက်ပြ a နာတစ်ခု နှင့် ကြုံတွေ့ရနိုင်သည်။ ImageColorallocatealealealealpha ကိုဖွင့်ရန်ပုံရိပ်ကို အသုံးပြု. ပုံရိပ်၏နောက်ခံသည်အနက်ရောင်ဖြစ်လာပြီးနောက်ခံသည်အနက်ရောင်ဖြစ်လာသည်။ ဤမေးခွန်းသည် developer များမကြာခဏရှုပ်ထွေးတတ်သည်, အထူးသဖြင့်ပွင့်လင်းမြင်သာသောနောက်ခံနှင့်အတူ PNG ရုပ်ပုံများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါမကြာခဏရှုပ်ထွေးစေသည်။ ဤဆောင်းပါးသည်အဘယ်ကြောင့်ဤသို့ဖြစ်ပျက်လာကြောင်းနှင့်အဖြေရှာရန်အဘယ်ကြောင့်အသေးစိတ်ရှင်းပြပါလိမ့်မည်။
GD စာကြည့်တိုက်သည် PHP တွင်ရုပ်ပုံပြုပြင်ခြင်းအတွက်စံသတ်မှတ်စာကြည့်တိုက်ဖြစ်သည်။ PNG ရုပ်တုများနှင့် PNGETJENTCENCY ဖြင့် PNG, PNG, PNG, GIF, GIF, စသည်တို့အပါအ 0 င်ပုံရိပ်အမျိုးအစားအမျိုးမျိုးအပါအ 0 င်မျိုးဆက်များကိုထောက်ပံ့သည် ။ သို့သော်ပုံရိပ်နောက်ခံသည်ပွင့်လင်းမြင်သာမှုရှိရန်မျှော်လင့်သော်လည်း Importpng () မှတဆင့်တင်ပို့သော PNG Images များသည်အနက်ရောင်နောက်ခံရှိသည်။
ပြ problem နာ၏အမြစ်သည် GD စာကြည့်တိုက်နှင့် PNG format များကိုကိုင်တွယ်ပုံသည်လမ်းပေါ်တွင်တည်ရှိသည်။ PNG format သည်ပွင့်လင်းမြင်သာမှုကိုထောက်ပံ့သည်။ အဆိုပါ Imagecolorallochocatealealealpha function ကအရောင်ပွင့်လင်းမြင်သာမှုအတိုင်းအတာကိုထိန်းချုပ်သောပွင့်လင်းမြင်သာမှုတန်ဖိုးကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ ပွင့်လင်းမြင်သာမှု၏တန်ဖိုးသည်များသောအားဖြင့် 0 နှင့် 127 ကြားတွင် 0 နှင့် 127 ကြားတွင်ရှိပြီးစုစုပေါင်းပွင့်လင်းမြင်သာမှုကိုကိုယ်စားပြုသည်။
သို့သော် GD စာကြည့်တိုက်သည် PNG ပုံရိပ်၏ပွင့်လင်းသောနောက်ခံကိုအလိုအလျောက်မသတ်မှတ်ပါ။ PNG Images များကိုသိမ်းဆည်းသည့်အခါ isionpng () function သည်ပုံမှန်အားဖြင့်ပွင့်လင်းနောက်ခံအထောက်အပံ့ကိုမဖွင့်ပါ။ ဒါကြောင့်ပွင့်လင်းမြင်သာတဲ့အရောင်တွေကိုသုံးရင်တောင်ပုံရိပ်ရဲ့ပွင့်လင်းမြင်သာတဲ့နောက်ခံကိုမှန်ကန်စွာ configure မထားဘူးဆိုရင်,
ဤပြ problem နာကိုဖြေရှင်းရန် PNG ရုပ်ပုံများကိုထုတ်လုပ်သည့်အခါပွင့်လင်းမြင်သာသည့်နောက်ခံကိုသေချာအောင်လုပ်ရန်လိုအပ်သည်။ Image Saving Saving options များကို ImagePng () function () function () function ကိုတတိယ paretery () နှင့် imagealpealpha () လုပ်ဆောင်ချက်များကို အသုံးပြု. ပုံရိပ်ပွင့်လင်းမြင်သာမှုအပြောင်းအလဲများကိုသတ်မှတ်ရန်အသုံးပြုရမည်။
ဤတွင်အဖြေတစ်ခုအတွက်နမူနာကုဒ်ဖြစ်သည်။
<?php
// စစ်မှန်သောအရောင်ပုံရိပ်ကိုဖန်တီးပါ
$image = imagecreatetruecolor(200, 200);
// ပွင့်လင်းအရောင်သတ်မှတ်ပါ
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
// နောက်ခံကိုပွင့်လင်းမြင်သာစွာဖြည့်ပါ
imagefill($image, 0, 0, $transparent);
// ဖွင့်လှစ်alpha blending
imagealphablending($image, false);
// Transparency သတင်းအချက်အလက်ကိုသိမ်းပါ
imagesavealpha($image, true);
// ဂရပ်ဖစ်အချို့ဆွဲပါ,အနီရောင်စတုဂံလိုပဲ
$red = imagecolorallocate($image, 255, 0, 0);
imagefilledrectangle($image, 50, 50, 150, 150, $red);
// output ကိုဖြစ်ပါတယ်PNGပမာဏ
imagepng($image, 'output.png');
// ပုံရိပ်အရင်းအမြစ်များကိုဖျက်ဆီး
imagedestroy($image);
?>
Image တစ်ခုကိုဖန်တီးပါ ။ 200x200 ၏စစ်မှန်သောအရောင်ပုံရိပ်ကိုဖန်တီးရန် imagecreatetuecolor () function ကိုသုံးပါ။
ပွင့်လင်းမြင်သာအရောင်များကို assign : imagecolorallocatealpha () အရောင်တောက်ပနှင့်အတူအရောင်ကိုသတ်မှတ်ပါတယ်။ ဤဥပမာတွင်ပွင့်လင်းမြင်သာမှုသည် 127, I.E. သည်လုံးဝပွင့်လင်းမြင်သာမှုရှိသည်။
နောက်ခံဖြည့်ပါ ။
Alpha Blending ကိုဖွင့်ပါ ။ imagealphableending () function ကို မှားယွင်း ရန်သတ်မှတ်ထားသည်။ ဆိုလိုသည်မှာ alpha blending ကိုပိတ်ထားနိုင်ရန်အတွက် Alpha Blending ကိုမှန်ကန်စွာသိမ်းဆည်းထားနိုင်အောင်ပိတ်ထားသည်။
Transparency သတင်းအချက်အလက်ကိုသိမ်းဆည်းပါ ။
ဂရပ်ဆွဲပါ ။ ပုံပေါ်ရှိအကြောင်းအရာများကိုပြသရန်အနီရောင်စတုဂံတစ်ခုကိုဆွဲပါ။
ပုံကိုသိမ်းဆည်းပါ - ပုံကို PNG format ဖြင့်သိမ်းဆည်းရန် imagepng () ကို သုံးပါ။
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ပုံသဏ်နောက်ခံ၏နောက်ခံသည်ပုံမှန်အနက်နောက်ခံအစားထက်ပွင့်လင်းမြင်သာမှုရှိကြောင်းသေချာစေသည်။
Imagecolorallocatealealpha function ကိုအသုံးပြုသောအခါ ImagePng (ImagePng) မှတင်ပို့သည့်ပုံရိပ်နောက်ခံသည်ပုံရိပ်ပွင့်လင်းမြင်သာမှုကိုမှန်ကန်စွာမသတ်မှတ်ပါကအနက်ရောင်ဖြစ်လာနိုင်သည်။ ဒီပြ problem နာကိုဖြေရှင်းဖို့ Alpha Bloending ကိုဖွင့်ပြီးပွင့်လင်းမြင်သာမှုဆိုင်ရာအချက်အလက်တွေကိုသိမ်းဆည်းထားဖို့လိုတယ်။ ဤ parameters တွေကိုမှန်ကန်စွာ configure လုပ်ခြင်းအားဖြင့်ထုတ်လုပ်ထားသော PNG ပုံရိပ်သည်ပွင့်လင်းမြင်သာသောနောက်ခံကိုထိန်းသိမ်းထားလိမ့်မည်။
ဤဆောင်းပါးသည်ပြ the နာကိုဖြေရှင်းရန်နှင့် PNG ရုပ်ပုံများကိုကျော်ပွင့်လင်းမြင်သာသောနောက်ခံဖြင့်အောင်မြင်စွာလုပ်ဆောင်နိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။