PHP တွင် ImpoPenPolygon () သည် polygons ကိုဖွင့်ရန်အသုံးပြုသော function တစ်ခုဖြစ်ပြီး, ဂရပ်ဖစ်ပုံဆွဲခြင်း, အထူးသဖြင့်စိတ်ကြိုက်လိုင်းပုံစံများနှင့်ဆက်ဆံရာတွင်အလွန်အသုံးဝင်သည်။ သို့သော် PHP ကွဲပြားခြားနားသောဗားရှင်းများ၌ဤလုပ်ဆောင်မှု၏ထောက်ခံမှုနှင့်စွမ်းဆောင်ရည်များတွင်ကွဲပြားခြားနားမှုအချို့ရှိပါသည်။ အောက်တွင်ဖော်ပြထားသောအနီးကပ်ကြည့်ရှုကြပါစို့။
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 ဆွဲနိုင်သည်။
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);
ပံ့ပိုးထားသောဗားရှင်းအားလုံးတွင် (PHP 7.2+), ImpoPenPolygon () Impopenpolygon () boolean သို့ပြန်ပို့သည်။
အောင်မြင်မှု - စစ်မှန်တဲ့ ပြန်လာပါ
မအောင်မြင်ပါ - မှားယွင်းသော ပြန်လာပါ
PHP 8.0 အပြီးတွင် မ မှန်ကန်သော parameter သည် (ထိုကဲ့သို့သော gdimage အမျိုးအစားကဲ့သို့သော) ကို ဖြတ်သန်းသွားလျှင်,
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";
}
ဥပမာအားပြည့်စုံသောဥပမာတစ်ခုပေးရန် 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 နာများကိုရေးရန်ဂရုပြုသင့်သည်။