လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ကွဲပြားခြားနားသော PHP ဗားရှင်းများတွင် Imageopenpolygon () ၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှု

ကွဲပြားခြားနားသော PHP ဗားရှင်းများတွင် Imageopenpolygon () ၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှု

M66 2025-05-17

PHP တွင် ImpoPenPolygon () သည် polygons ကိုဖွင့်ရန်အသုံးပြုသော function တစ်ခုဖြစ်ပြီး, ဂရပ်ဖစ်ပုံဆွဲခြင်း, အထူးသဖြင့်စိတ်ကြိုက်လိုင်းပုံစံများနှင့်ဆက်ဆံရာတွင်အလွန်အသုံးဝင်သည်။ သို့သော် PHP ကွဲပြားခြားနားသောဗားရှင်းများ၌ဤလုပ်ဆောင်မှု၏ထောက်ခံမှုနှင့်စွမ်းဆောင်ရည်များတွင်ကွဲပြားခြားနားမှုအချို့ရှိပါသည်။ အောက်တွင်ဖော်ပြထားသောအနီးကပ်ကြည့်ရှုကြပါစို့။

1 ။ Imageopenpolygon ၏နိဒါန်း ()

Imageopenpolygon () function ကို PHP ဗားရှင်း 7.2.0 တွင်မိတ်ဆက်ခဲ့သည်။ ဤလုပ်ဆောင်ချက်သည်အစောပိုင်းဗားရှင်း (PHP 5.x သို့မဟုတ် Php 7.0 / 7.1) တွင်မရရှိနိုင်ပါ။ ထို့ကြောင့်အဟောင်းဗားရှင်းများတွင်အသုံးပြုပါက၎င်းသည် ဆိုးဝါးသောအမှားများ ကိုတိုက်ရိုက်ဖြစ်စေနိုင်သည်။

 // PHP 7.1 အစောပိုင်း version ကို execute
$im = imagecreatetruecolor(200, 200);
$points = [50, 50, 150, 50, 150, 150, 50, 150];
// ဤသည်ဆိုးဝါးသောအမှားတစ်ခုဖြစ်ပေါ်လိမ့်မယ်,ဘာဖြစ်လို့လဲဆိုတော့ function ကိုမတည်ရှိပါဘူး
imageopenpolygon($im, $points, 4, imagecolorallocate($im, 255, 0, 0));

PHP 7.2 နှင့်နောက်ပိုင်းတွင်အထက်ပါကုဒ်သည်ပုံမှန်အားဖြင့် execute လုပ်ပြီးပွင့်လင်း quad ဆွဲနိုင်သည်။

2 ။ parameter သည်အပြောင်းအလဲများနှင့်သတ်မှတ်ချက်များ

Imppenpolygon () ၏အခြေခံ parameter သည် php 7.2 ကတည်းကသတ်မှတ်ထားပြီးနောက်ဆက်တွဲဗားရှင်းမပြောင်းလဲပါ။ ၎င်း၏ parameters တွေကို:

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)
  • $ Image : ImageCreatetRuecolor () သို့မဟုတ်အလားတူလုပ်ဆောင်ချက်မှဖန်တီးထားသောပုံရိပ်အရင်းအမြစ်။

  • $ ရမှတ်များ - x နှင့် y ကိုသွဒီနိတ်များပါ 0 င်သည့်တစ်ရှုထောင်ခင်းကျင်း။

  • $ num_points : (array elements အရေအတွက်ထက်) vertices အရေအတွက်။

  • $ အရောင် : imagecolorallallerAletate () မှဖန်တီးသောလိုင်းအရောင်။

PHP 8.0 ပြီးနောက် PHP 8.0 အပြီးတွင်အမျိုးအစားစနစ်၏အားဖြည့်ခြင်းဖြင့်အရင်းအမြစ်အမျိုးအစားအရင်းအမြစ် (အရင်းအမြစ်) ကို Gdimage Office သို့တရားဝင်အဖြစ်ပြောင်းလဲခဲ့သည်။ ဒါကြောင့် PHP 8.0+ မှာ $ Image ဟာ Gdimage ဥပမာတစ်ခုဖြစ်ရမယ်, မဟုတ်ရင် typeerror ကိုအစပျိုးလိမ့်မယ်။

ဥပမာ (PHP 8.0+):

 $im = imagecreatetruecolor(200, 200);
$red = imagecolorallocate($im, 255, 0, 0);
$points = [50, 50, 150, 50, 150, 150, 50, 150];
imageopenpolygon($im, $points, 4, $red);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);

3 ။ တန်ဖိုးကိုအပြုအမူကိုပြန်ပို့ပါ

ပံ့ပိုးထားသောဗားရှင်းအားလုံးတွင် (PHP 7.2+), ImpoPenPolygon () Impopenpolygon () boolean သို့ပြန်ပို့သည်။

  • အောင်မြင်မှု - စစ်မှန်တဲ့ ပြန်လာပါ

  • မအောင်မြင်ပါ - မှားယွင်းသော ပြန်လာပါ

PHP 8.0 အပြီးတွင် မှန်ကန်သော parameter သည် (ထိုကဲ့သို့သော gdimage အမျိုးအစားကဲ့သို့သော) ကို ဖြတ်သန်းသွားလျှင်,

4 ။ အမှားကိုင်တွယ်

  • PHP 7.2 - 7.4 : Pass Error Parameter type တွင် Pass သည်များသောအားဖြင့် မှားယွင်းသော နောက်သို့ပြန်ပြီး e_warning ကိုဖြစ်ပေါ်စေသည်။

  • PHP 8.0+ : အမှား parameter type သည် TypeApter ခြွင်းချက်ကိုတိုက်ရိုက်ပစ်ချခြင်းမရှိတော့ပါ။

ဥပမာ (အမှားကိုင်တွယ်မှုကိုအမှားလုပ်ခြင်း):

 try {
    $invalidImage = 'not a resource';
    $points = [10, 10, 20, 20, 30, 10];
    imageopenpolygon($invalidImage, $points, 3, 0xFF0000);
} catch (TypeError $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

5 ။ အမှန်တကယ်ကိစ္စသရုပ်ပြပွဲ

ဥပမာအားပြည့်စုံသောဥပမာတစ်ခုပေးရန် Imageopenpolygon () ကို ရိုးရှင်းသောဖွင့်ထားသော polygon ကိုဆွဲ။ ပုံရိပ်ကို browser သို့ထုတ်ယူပါ။

 <?php
$im = imagecreatetruecolor(300, 300);
$background = imagecolorallocate($im, 255, 255, 255); // အဖြူရောင်နောက်ခံ
$lineColor = imagecolorallocate($im, 0, 0, 255); // အပြာရောင်လိုင်းများ

$points = [
    50, 50,
    250, 50,
    250, 250,
    50, 250
];

imagefill($im, 0, 0, $background);
imageopenpolygon($im, $points, 4, $lineColor);

// browser မှ output ကို
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

ဥပမာ Browser သည်ဤ PHP ဖိုင်ကိုအသုံးပြုသည်။

 https://m66.net/draw_polygon.php

အပြာရောင်လိုင်းများဖြင့်ရေးဆွဲထားသောပွင့်လင်းစတုဂံအကွက်ကိုသင်တွေ့နိုင်သည်။

အကျဉ်းချုပ်

PHP ဗားရှင်း ထောက် ပေြာဆို
<7 7.2 မထောက်ပံ့ပါ, ခေါ်ဆိုမှုတိုက်ရိုက်အမှားဖြစ်ပါတယ်
7.2 - 7.4 ထောက်ပံ့, ချောင် parameter သည်အမျိုးအစားများ အရင်းအမြစ်သည်အရင်းအမြစ်အမျိုးအစားဖြစ်သည်
8.0+ ထောက်ပံ့, တင်းကြပ်သော parameter သည်လိုအပ်ချက်များ gdimage အမျိုးအစား, အမှားခြွင်းချက်တိုက်ရိုက်ပစ်ချ

ထို့ကြောင့်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PHP 7.1 နှင့်အောက်တွင်သဟဇာတဖြစ်ရန်လိုအပ်ပါက imageopenpolygon () ကို အသုံးပြုခြင်းကိုရှောင်ရှားသင့်သည်။ PHP 8.0+ ပတ်ဝန်းကျင်တွင်တင်းကြပ်ခြင်းနှင့်ခြွင်းချက်ကိုင်တွယ်ခြင်းပြ issues နာများကိုရေးရန်ဂရုပြုသင့်သည်။