PHP တွင် GD စာကြည့်တိုက်တွင်ပုံဆွဲသည့်အခါ alpha channel နှင့် တွဲဖက်. ၎င်းကိုကိုင်တွယ်ရန် alpha channel ကိုသုံးရန်လိုအပ်သည်။ ဒီဆောင်းပါးမှာ impenopenpolygon () function ကိုတဆင့်ချောချောမွေ့မွေ့ polygon အကျိုးသက်ရောက်မှုကိုဘယ်လိုဆွဲနိုင်မလဲဆိုတာကိုငါယူမယ်။
Imageopenpolygon () Php GD စာကြည့်တိုက်တွင် Php GD စာကြည့်တိုက်တွင် Php GD စာကြည့်တိုက်တွင်ပုံဆွဲခြင်းလုပ်ငန်းတစ်ခုဖြစ်သည်။ ImagePolygon () (ပိတ်ပစ် polygon) နှင့်မတူဘဲ Imageopenpolygon () သည် polygon ၏လိုင်းများကိုသာဆွဲဆောင်နိုင်ပြီးအစနှင့်အဆုံးမှတ်များကိုအလိုအလျောက်မပိတ်ပါ။
လုပ်ဆောင်ချက်၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool imageopenpolygon(GdImage $image, array $points, int $num_points, int $color)
$ Image : ပုံရိပ်အရင်းအမြစ်ကိုပစ်မှတ်ထားသည်။
$ ရမည့်အချက်များ - point coundinate များပါ 0 င်သည့်အချက်များ, format (x1, y1, x2, y2, y2, xn, yn) ။
$ numpoints : အချက်များအရေအတွက်။
$ အရောင် : ပုံဆွဲဘို့အသုံးပြုအရောင်။
GD စာကြည့်တိုက်သည် RGBA format များကိုအရောင်များကိုထောက်ပံ့သည်။ အရောင်များကိုပွင့်လင်းမြင်သာမှုရှိစေရန်ခွင့်ပြုသည်။ Alpha တန်ဖိုးကိုထိန်းချုပ်ခြင်းအားဖြင့် Gradient ၏ပွင့်လင်းမြင်သာမှုအကျိုးသက်ရောက်မှုကိုအောင်မြင်နိုင်သည်။
Imageopenpolygon () ကို အသုံးပြု. ပိုးပွင့်ပွင့်လင်းသော gradient ဖြင့် polygon တစ်ခုကိုမည်သို့ဆွဲရမည်ကိုပြသသောလက်တွေ့ကျသောဥပမာတစ်ခုရှိသည်။
<?php
// ပတ်တူဖန်တီးပါ
$width = 400;
$height = 400;
$image = imagecreatetruecolor($width, $height);
// စွမ်းဆောင်နိုင်စေ alpha Channel Saving သတင်းအချက်အလက်
imagesavealpha($image, true);
// Transparent အရောင်များဖြင့်နောက်ခံကိုဖြည့်ပါ
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
// တစ် polygon ၏အချက်ကိုသတ်မှတ်ပါ
$points = [
50, 50,
350, 50,
350, 350,
50, 350
];
// မတူကွဲပြားသောပွင့်လင်းမြင်သာမှုနှင့်အတူ polygon လိုင်းများဆွဲစတင်ပါ
$steps = 10;
for ($i = 0; $i <= $steps; $i++) {
$alpha = (int)($i * (127 / $steps)); // alpha မှ0(opaque)ရောက်လာ127(အပြည့်အဝပွင့်လင်း)
$color = imagecolorallocatealpha($image, 255, 0, 0, $alpha); // နီသော,ကွဲပြားခြားနားသောပွင့်လင်းမြင်သာမှုနှင့်အတူ
// အဆိုပါစကေးအမှတ်တွက်ချက်
$scaledPoints = [];
foreach ($points as $index => $coord) {
$offset = 5 * $i;
if ($index % 2 == 0) { // x ညီညာစေ
$scaledPoints[] = $coord + $offset;
} else { // y ညီညာစေ
$scaledPoints[] = $coord + $offset;
}
}
imageopenpolygon($image, $scaledPoints, count($scaledPoints) / 2, $color);
}
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
// အရင်းအမြစ်များကိုဖျက်ဆီးသည်
imagedestroy($image);
?>
ဤကုဒ်သည်ကွင်းဆက်ကိုကွင်းဆက်မှတစ်ဆင့် Polygon ကိုအနည်းငယ်ချဲ့ထွင်ခြင်းနှင့်တစ်ကြိမ်တွင်ပွင့်လင်းမြင်သာမှုကိုလျှော့ချခြင်း, Imageopenpolygon () သည် ပွင့်လင်းသော polygon ကိုဆွဲယူသောကြောင့်အလယ်၌အစိုင်အခဲဖြည့်စွက်ခြင်းမရှိ,
နောက်ဆုံးအကျိုးသက်ရောက်မှုကိုသင်တွေ့လိုလျှင်အထက်ပါကုဒ်ကို .php ဖိုင်တစ်ခုအဖြစ်သိမ်းဆည်းပြီးသင်၏ဆာဗာသို့တင်နိုင်သည်။
https://m66.net/demo/transparent_polygon.php
(ဆာဗာကို PHP ပတ်ဝန်းကျင်ဖြင့် configure လုပ်ရန်နှင့် GD စာကြည့်တိုက်ကိုဖွင့်ထားပါ။ )
Imagesavealpha ($ Image, True) ကိုခေါ်ရမည်။
Imagecolorallocealpha ၏နောက်ဆုံး pareter သည် (လုံးဝမအောင်မြင်) မှ 127 အထိ (လုံးဝပွင့်လင်းမြင်သာမှု) အထိ alpha value ဖြစ်သည်။
PHP 8.0 မှစတင်ခြင်း GD စာကြည့်တိုက်၏အရာဝတ်ထုပုံစံကို ပြောင်းလဲ. ပြောင်းလဲသွားပြီဖြစ်သောကြောင့်ဗားရှင်းကွာခြားချက်များကိုဂရုပြုပါ။
Impressopenpolygon () ကို alpha gradient ဖြင့်အသုံးပြုခြင်းသည်အမှန်တကယ်မှ စ. မာရောအဆင့်လိုင်းပုံဆွဲခြင်းသက်ရောက်မှုကိုအလွယ်တကူရရှိနိုင်သည်။ ဤနည်းပညာသည် Cool UI အစိတ်အပိုင်းများကိုဆွဲထုတ်ရန်သာမကပြောင်းလဲနေသောနောက်ခံများ, အထူးသက်ရောက်မှုဂရပ်ဖစ်စသည်တို့ကိုထုတ်လုပ်ရန်လည်းအသုံးပြုနိုင်သည်။ ၎င်းသည်အလွန်လက်တွေ့ကျသည်။