လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Imageopenpolygon () sprintcent အကျိုးသက်ရောက်မှုအောင်မြင်ရန် Alpha Gradient နှင့်ပူးပေါင်းပါ

Imageopenpolygon () sprintcent အကျိုးသက်ရောက်မှုအောင်မြင်ရန် Alpha Gradient နှင့်ပူးပေါင်းပါ

M66 2025-05-29

PHP တွင် GD စာကြည့်တိုက်တွင်ပုံဆွဲသည့်အခါ alpha channel နှင့် တွဲဖက်. ၎င်းကိုကိုင်တွယ်ရန် alpha channel ကိုသုံးရန်လိုအပ်သည်။ ဒီဆောင်းပါးမှာ impenopenpolygon () function ကိုတဆင့်ချောချောမွေ့မွေ့ polygon အကျိုးသက်ရောက်မှုကိုဘယ်လိုဆွဲနိုင်မလဲဆိုတာကိုငါယူမယ်။

Imageopenpolygon ()?

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 : အချက်များအရေအတွက်။

  • $ အရောင် : ပုံဆွဲဘို့အသုံးပြုအရောင်။

Alpha Gradient Effect ကိုဘယ်လိုထည့်သွင်းရမလဲ။

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