PHP ၏ GD စာကြည့်တိုက်တွင်ပုံရိပ်အတွက်ပွင့်လင်းမြင်သာသောအရောင်များကိုသတ်မှတ်ရန်အသုံးပြုသော isaugecolortransparent function ကိုအသုံးပြုသည်။ ၎င်း၏အခြေခံ function သည်ပုံတွင်အရောင်ကိုပွင့်လင်းမြင်သာသောအရောင်တစ်ခုအဖြစ်သတ်မှတ်ရန်ဖြစ်သည်။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်လူအများစုကသင်သည်ကြည်နူးမြင့်သောဒေသများ၌ပွင့်လင်းမြင်သာသော areas ရိယာများကိုပုံရိပ်တွင်တိတိကျကျသတ်မှတ်ထားလိုပါကအထူးသဖြင့်ရှုပ်ထွေးသောအရောင်များသို့မဟုတ် gradient ရိ ယာများကိုတိုက်ရိုက်ခေါ်ဆိုခြင်းသည်အကောင်းဆုံးအကျိုးသက်ရောက်မှုကိုမရရှိနိုင်ကြောင်းတွေ့ရှိရသည်။ ဤဆောင်းပါးသည် ပိုမို. ပွင့်လင်းမြင်သာသောဒေသများကိုတိကျစွာသတ်မှတ်ထားသည့် isionecolortransparent ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပြီးလက်တွေ့ကျသောအကြံပြုချက်များနှင့်ဥပမာအချို့ကိုပေးမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
<?php
// a100x100စစ်မှန်သောအရောင်ပုံရိပ်
$image = imagecreatetruecolor(100, 100);
// ပုံအတွက်အနီရောင်နောက်ခံကိုဖြည့်ပါ
$red = imagecolorallocate($image, 255, 0, 0);
imagefill($image, 0, 0, $red);
// ပွင့်လင်းအရောင်မှအနီရောင်ထားပါ
imagecolortransparent($image, $red);
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
အထက်ပါကုဒ်တွင် imagecolortransparent သည်အနီရောင် ဒေါ်လာအနီရောင် သည်ပွင့်လင်းမြင်သာမှုရှိကြောင်းသတ်မှတ်ထားသည်။
Imagecolortransparent က အရောင်တစ်မျိုးကိုသာပွ င့ ်လင်းမြင်သာမှုရှိစေရန်သာဆိုနိုင်သည် ။ ပြနာက
အရောင်တစ်မျိုးတည်းသာပွင့်လင်းမြင်သာမှုရှိနိုင်သည်။
အကယ်. ပုံသည်မှန်ကန်သောအရောင်ဖြစ်လျှင် ( imagecreatetetorecolorcolor မှဖန်တီးသည်) လျှင်ကြည်လင်သောအရောင် setting သည် palette mode သို့အလိုအလျောက်ပြောင်းလဲလိမ့်မည်။ ၎င်းသည်အရောင်ပုံပျက်စေနိုင်သည်။
အရောင်ကိုက်ညီမှုသည်လုံးဝတသမတ်တည်းဖြစ်ရမည်။ အရောင်တွင်ရှိသောသွေဖည်မှုအနည်းငယ်သည်ပွင့်လင်းမြင်သာမှုပျက်ကွက်မှုကိုဖြစ်ပေါ်စေလိမ့်မည်။
ပထမအရောင်ပုံရိပ်ကို palette image တစ်ခုအဖြစ်ပြောင်းပါ ( imagetruecolortopalette ), ထို့နောက်ပွင့်လင်းမြင်သာသောအရောင်ကိုသတ်မှတ်ပါ။
<?php
$image = imagecreatetruecolor(100, 100);
// အစိမ်းရောင်စတုဂံဆွဲပါ
$green = imagecolorallocate($image, 0, 255, 0);
imagefill($image, 0, 0, $green);
// palette image သို့ပြောင်းပါ,လူကြိုက်အများဆုံး256အရောင်အမျိုးအစား
imagetruecolortopalette($image, false, 256);
// ပွင့်လင်းမြင်သာရန်လိုအပ်သည့်အရောင်အညွှန်းကိန်းကိုရှာပါ
$transparentIndex = imagecolorclosest($image, 0, 255, 0);
// ပွင့်လင်းအရောင် set
imagecolortransparent($image, $transparentIndex);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
ဤချဉ်းကပ်နည်းသည်အရောင်များနှင့်ပုံသေအရောင်များနည်းသောပုံများနှင့်သင့်တော်ကြောင်း, အရောင်များပြောင်းလဲခြင်းပြီးနောက်အရောင်များသည်အသေးစိတ်အချက်အလက်များဆုံးရှုံးနိုင်သည်ကိုသတိပြုပါ။
စစ်မှန်သောအရောင်ပုံရိပ်များအတွက် PNG ပုံရိပ်များကို alpha channel နှင့်အတူအသုံးပြုရန်အကြံပြုသည် ။
<?php
$image = imagecreatetruecolor(100, 100);
// စွမ်းဆောင်နိုင်စေ alpha Channel Saving
imagesavealpha($image, true);
// တစ် ဦး translucent အပြာရောင်နောက်ခံဆွဲပါ
$transBlue = imagecolorallocatealpha($image, 0, 0, 255, 80);
imagefill($image, 0, 0, $transBlue);
// Opaque အဖြူစက်ဝိုင်းဆွဲပါ
$white = imagecolorallocatealpha($image, 255, 255, 255, 0);
imagefilledellipse($image, 50, 50, 80, 80, $white);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
ဤနည်းလမ်းသည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိပြီးရှုပ်ထွေးပြီးပွင့်လင်းမြင်သာမှုလိုအပ်ချက်များအတွက်သင့်လျော်သော gradient နှင့် translucent သက်ရောက်မှုများကိုထောက်ပံ့သည်။
သင့်တွင်ပုံတစ်ပုံရှိပြီးအရောင်များကိုပွင့်လင်းမြင်သာမှုရှိစေရန်အတွက် pixels များကိုအစားထိုးလိုသည်ဆိုပါစို့။
<?php
$image = imagecreatefrompng('http://m66.net/sample.png');
// ပုံအကျယ်နှင့်အမြင့်ကိုရယူပါ
$width = imagesx($image);
$height = imagesy($image);
// ပွင့်လင်းမြင်သာမှုရှိရန်အရောင်များ၏အကွာအဝေးကိုသတ်မှတ်ပါ(အဖြူရောင်နီးစပ်လိုပဲ)
$threshold = 30;
for ($x = 0; $x < $width; $x++) {
for ($y = 0; $y < $height; $y++) {
$rgb = imagecolorat($image, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
// ၎င်းသည်အဖြူရောင်နှင့်နီးသည်ကိုဆုံးဖြတ်ပါ
if ($r > 255 - $threshold && $g > 255 - $threshold && $b > 255 - $threshold) {
// ဒီ pixel ကိုပွင့်လင်းမြင်သာမှုရှိစေရန်သတ်မှတ်ပါ
imagesetpixel($image, $x, $y, imagecolorallocatealpha($image, 0, 0, 0, 127));
}
}
}
// ချန်လှပ်ထား alpha အချက်အလက်အချက်အလက်
imagesavealpha($image, true);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
pixels များကိုဖြတ်သန်းခြင်းအားဖြင့်သင်သည်ပွင့်လင်းမြင်သာသောဒေသများကိုပိုမိုတိကျစွာထိန်းချုပ်နိုင်သည်, ရှုပ်ထွေးသောပုံရိပ်ပွင့်လင်းမြင်သာမှုအပြောင်းအလဲအတွက်သင့်တော်သည်။
Imagecolortransparent တစ်ခုတည်းသောအရောင်ပွင့်လင်းမြင်သာမှုတစ်ခုသတ်မှတ်ရန်အတွက်သင့်လျော်သော်လည်း application ၏နယ်ပယ်မှာအကန့်အသတ်ရှိသည်။
စစ်မှန်သောအရောင်ရုပ်ပုံများကို palette mode ကို အသုံးပြု. စိတ်ကူးယဉ်ပုံသဏ္ဌာန် နှင့်ပေါင်းစပ်နိုင်သည်။ သို့သော်အရောင်ဆုံးရှုံးလိမ့်မည်။
PNG ပုံရိပ်များကို alpha channel နှင့်အတူအသုံးပြုရန်နှင့် ပုံရိပ်များသည် ပုံရိပ်များ မှတစ်ဆင့်ပိုမိုသိရှိရန်အကြံပြုသည်။
ရှုပ်ထွေးသောပွင့်လင်းမြင်သာမှုလိုအပ်ချက်များကို pixel traversal နှင့်အရောင်တရားစီရင်ခြင်းမှတဆင့်ထိန်းချုပ်နိုင်သည်။
အထက်ပါကျွမ်းကျင်မှုများကိုကျွမ်းကျင်စွာကျွမ်းကျင်စွာပြုလုပ်နိုင်သည့် PHPG GD စာကြည့်တိုက်ကိုသင်ဖွံ့ဖြိုးရေးလိုအပ်ချက်အမျိုးမျိုးနှင့်ကိုက်ညီစေရန် Transparent image areas ရိယာများကိုတိကျစွာသတ်မှတ်ရန်ပြောင်းလဲနိုင်သည်။