လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Transparent areas ရိယာများကိုပုံမကပ်နိုင်သည့် areas ရိယာများကိုပုံမှတ်ဖြင့်မည်သို့တိကျစွာသတ်မှတ်နိုင်မည်နည်း။

Transparent areas ရိယာများကိုပုံမကပ်နိုင်သည့် areas ရိယာများကိုပုံမှတ်ဖြင့်မည်သို့တိကျစွာသတ်မှတ်နိုင်မည်နည်း။

M66 2025-06-12

PHP ၏ GD စာကြည့်တိုက်တွင်ပုံရိပ်အတွက်ပွင့်လင်းမြင်သာသောအရောင်များကိုသတ်မှတ်ရန်အသုံးပြုသော isaugecolortransparent function ကိုအသုံးပြုသည်။ ၎င်း၏အခြေခံ function သည်ပုံတွင်အရောင်ကိုပွင့်လင်းမြင်သာသောအရောင်တစ်ခုအဖြစ်သတ်မှတ်ရန်ဖြစ်သည်။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်လူအများစုကသင်သည်ကြည်နူးမြင့်သောဒေသများ၌ပွင့်လင်းမြင်သာသော areas ရိယာများကိုပုံရိပ်တွင်တိတိကျကျသတ်မှတ်ထားလိုပါကအထူးသဖြင့်ရှုပ်ထွေးသောအရောင်များသို့မဟုတ် gradient ရိ ယာများကိုတိုက်ရိုက်ခေါ်ဆိုခြင်းသည်အကောင်းဆုံးအကျိုးသက်ရောက်မှုကိုမရရှိနိုင်ကြောင်းတွေ့ရှိရသည်။ ဤဆောင်းပါးသည် ပိုမို. ပွင့်လင်းမြင်သာသောဒေသများကိုတိကျစွာသတ်မှတ်ထားသည့် isionecolortransparent ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပြီးလက်တွေ့ကျသောအကြံပြုချက်များနှင့်ဥပမာအချို့ကိုပေးမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။


1 ။ ImagecORTORTRANTARENT ၏အခြေခံအသုံးပြုမှု

 <?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 သည်အနီရောင် ဒေါ်လာအနီရောင် သည်ပွင့်လင်းမြင်သာမှုရှိကြောင်းသတ်မှတ်ထားသည်။


2 ။ ပွင့်လင်းမြင်သာသောအရောင်များကိုသာသတ်မှတ်ခြင်းသည်အဘယ်ကြောင့်မတိကျသနည်း။

Imagecolortransparent က အရောင်တစ်မျိုးကိုသာပွ င့ ်လင်းမြင်သာမှုရှိစေရန်သာဆိုနိုင်သည် ပြနာက

  • အရောင်တစ်မျိုးတည်းသာပွင့်လင်းမြင်သာမှုရှိနိုင်သည်။

  • အကယ်. ပုံသည်မှန်ကန်သောအရောင်ဖြစ်လျှင် ( imagecreatetetorecolorcolor မှဖန်တီးသည်) လျှင်ကြည်လင်သောအရောင် setting သည် palette mode သို့အလိုအလျောက်ပြောင်းလဲလိမ့်မည်။ ၎င်းသည်အရောင်ပုံပျက်စေနိုင်သည်။

  • အရောင်ကိုက်ညီမှုသည်လုံးဝတသမတ်တည်းဖြစ်ရမည်။ အရောင်တွင်ရှိသောသွေဖည်မှုအနည်းငယ်သည်ပွင့်လင်းမြင်သာမှုပျက်ကွက်မှုကိုဖြစ်ပေါ်စေလိမ့်မည်။


3 ။ တိတိကျကျပွင့်လင်းမြင်သာသောဒေသများသတ်မှတ်ရန်ဘယ်လို?

1 ။ ImageCoalortransparent + 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);
?>

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

2 ။ ပိုကောင်းသောနှင့်ပွင့်လင်းမြင်သာမှုအောင်မြင်ရန် Alpha Channels ကိုသုံးပါ

စစ်မှန်သောအရောင်ပုံရိပ်များအတွက် 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 သက်ရောက်မှုများကိုထောက်ပံ့သည်။


4 ။ ဥပမာအားဖြင့် စိတ်ကူးယဉ်ပုံသဏ္ဌာန် နှင့်ပွင့်လင်းမြင်သာသော area ရိယာ၏တိကျသော setting ကို

သင့်တွင်ပုံတစ်ပုံရှိပြီးအရောင်များကိုပွင့်လင်းမြင်သာမှုရှိစေရန်အတွက် 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 များကိုဖြတ်သန်းခြင်းအားဖြင့်သင်သည်ပွင့်လင်းမြင်သာသောဒေသများကိုပိုမိုတိကျစွာထိန်းချုပ်နိုင်သည်, ရှုပ်ထွေးသောပုံရိပ်ပွင့်လင်းမြင်သာမှုအပြောင်းအလဲအတွက်သင့်တော်သည်။


5 ။ အကျဉ်းချုပ်

  • Imagecolortransparent တစ်ခုတည်းသောအရောင်ပွင့်လင်းမြင်သာမှုတစ်ခုသတ်မှတ်ရန်အတွက်သင့်လျော်သော်လည်း application ၏နယ်ပယ်မှာအကန့်အသတ်ရှိသည်။

  • စစ်မှန်သောအရောင်ရုပ်ပုံများကို palette mode ကို အသုံးပြု. စိတ်ကူးယဉ်ပုံသဏ္ဌာန် နှင့်ပေါင်းစပ်နိုင်သည်။ သို့သော်အရောင်ဆုံးရှုံးလိမ့်မည်။

  • PNG ပုံရိပ်များကို alpha channel နှင့်အတူအသုံးပြုရန်နှင့် ပုံရိပ်များသည် ပုံရိပ်များ မှတစ်ဆင့်ပိုမိုသိရှိရန်အကြံပြုသည်။

  • ရှုပ်ထွေးသောပွင့်လင်းမြင်သာမှုလိုအပ်ချက်များကို pixel traversal နှင့်အရောင်တရားစီရင်ခြင်းမှတဆင့်ထိန်းချုပ်နိုင်သည်။

အထက်ပါကျွမ်းကျင်မှုများကိုကျွမ်းကျင်စွာကျွမ်းကျင်စွာပြုလုပ်နိုင်သည့် PHPG GD စာကြည့်တိုက်ကိုသင်ဖွံ့ဖြိုးရေးလိုအပ်ချက်အမျိုးမျိုးနှင့်ကိုက်ညီစေရန် Transparent image areas ရိယာများကိုတိကျစွာသတ်မှတ်ရန်ပြောင်းလဲနိုင်သည်။