လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Imageopenpolygon () မှားယွင်းသောပြန်လာ? အဘယ်ကြောင့်ဆိုသော် parameters တွေကိုမှားယွင်းစွာသတ်မှတ်ထားခြင်းသို့မဟုတ်အသုံးပြုမှုနည်းလမ်းမမှန်သောကြောင့်ဖြစ်နိုင်သည်။ ဘယ်လိုဖြေရှင်းမလဲ

Imageopenpolygon () မှားယွင်းသောပြန်လာ? အဘယ်ကြောင့်ဆိုသော် parameters တွေကိုမှားယွင်းစွာသတ်မှတ်ထားခြင်းသို့မဟုတ်အသုံးပြုမှုနည်းလမ်းမမှန်သောကြောင့်ဖြစ်နိုင်သည်။ ဘယ်လိုဖြေရှင်းမလဲ

M66 2025-06-15

PHP ၏ Impopenpolygon () function ကို အသုံးပြု. ပွင့ လင်းသော polygons များကိုဆွဲယူသောအခါ, ၎င်းသည်များသောအားဖြင့် parameter သည်အမှားများ, ပုံသယံအရင်းအမြစ်ပြ problems နာများသို့မဟုတ်ခေါ်ဆိုမှုနည်းလမ်းဖြင့်ပြ problem နာကိုဆိုလိုသည်။ ဤဆောင်းပါးသည်ဘုံအမှားများမှ စ. ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန်နှင့်ဖြေရှင်းရန်ဖြစ်နိုင်သောအကြောင်းရင်းများနှင့်ဖြေရှင်းနည်းများကိုတဖြည်းဖြည်းခွဲခြမ်းစိတ်ဖြာပါလိမ့်မည်။

1 ။ GD စာကြည့်တိုက်ကိုမှန်ကန်စွာတပ်ဆင်ထားကြောင်းအတည်ပြုပါ

Imageopenpolygon () သည် GD ဂရပ်ဖစ်ပြုပြင်ခြင်းစာကြည့်တိုက်၏အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ အကယ်. GD စာကြည့်တိုက်ကိုဆာဗာပတ် 0 န်းကျင်တွင်မှန်ကန်စွာတပ်ဆင်မထားပါကမည်သည့် GD function ကိုမဆိုခေါ်ဆိုပါလိမ့်မည်။ ၎င်းကိုအောက်ပါကုဒ်များဖြင့်ရှာဖွေတွေ့ရှိနိုင်သည်။

 <?php
if (function_exists('imageopenpolygon')) {
    echo "GD စာကြည့်တိုက်ကို install လုပ်ထားသည်,နှင့်ပံ့ပိုးမှု imageopenpolygon() လုပ်ဆောင်ချက်。";
} else {
    echo "GD စာကြည့်တိုက်ကို install လုပ်ထားခြင်းမရှိပါ imageopenpolygon() လုပ်ဆောင်ချက်,ကျေးဇူးပြု။ ကျသင့်ငွေတွက်ပေးပါ PHP ကွက်ကွက်ကေျာင်း。";
}
?>

အကယ်. prompt ကို install လုပ်မထားပါကဆာဗာပေါ်ရှိ GD module ကို install လုပ်ရန်လိုအပ်သည်။

 sudo apt install php-gd

တပ်ဆင်မှုပြီးဆုံးပြီးနောက်ဆာဗာကိုပြန်လည်စတင်ရန်သတိရပါ။

2 ။ ပုံကြမ်းအရင်းအမြစ်မှန်ကန်မှုရှိမရှိစစ်ဆေးပါ

Imageopenpolygon () ၏ပထမဆုံး parameter သည်မှန်ကန်သောပုံရိပ်အရင်းအမြစ်ဖြစ်ရမည်။ ဤတွင်ပုံရိပ်အရင်းအမြစ်တစ်ခုဖန်တီးခြင်း၏စံနမူနာကောင်းတစ်ခုဖြစ်သည်:

 <?php
$image = imagecreatetruecolor(400, 300);
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
?>

IFF $ Image သည် Imagecreatetuecolorcolor () , imagecreatjpeg () , isionecreatjpeg ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာထုတ်ပေးသည်

3 ။ ကိုသွဒီနိတ်ပြင်ဆင်မှုကိုမှန်ကန်စွာ format လုပ်ထားကြောင်းအတည်ပြုပါ

Imageopenpolygon () ၏ဒုတိယ pareter သည် (x1, y1, x2, y2, y2, y2, y2, y3 , အကယ်. Array မမှန်ကန်ပါကလုပ်ဆောင်ချက်သည်လည်းပျက်ကွက်လိမ့်မည်။

Errorght Page (Two ရှုထောင့်နှစ်ခု array):

 $points = [
    [10, 10],
    [100, 50],
    [50, 150]
];
imageopenpolygon($image, $points, 3, $color); // အရေးအသားမှား

မှန်ကန်သောဥပမာ (တစ်ရှုထောင်ခင်းကျင်း):

 $points = [10, 10, 100, 50, 50, 150];
imageopenpolygon($image, $points, 3, $color);

array elements အရေအတွက်ကိုကိုယ်စားပြုသောဒေါင်အညွှန်း အရေအတွက်ကိုကိုယ်စားပြုသောတတိယ parameter ကိုအထူးဂရုပြုပါ။ ဒေါင်လိုက်အရေအတွက် (ရေတွက် ($ မှတ်) / 2) ဖြစ်သင့်သည်။

4 ။ အရောင်ခွဲဝေမှုမှန်ပါသလား။

Polygons ဆွဲသည့်အခါသင်သည် အရောင်များကိုဖော်ပြသောအရောင်အညွှန်းကိုသတ်မှတ်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်:

 $color = imagecolorallocate($image, 0, 0, 0); // မဲသော

အကယ်. သင်သည်မကပါသည့်အရောင်တန်ဖိုးကိုတိုက်ရိုက်ကူးယူပါက၎င်းသည်ပုံဆွဲခြင်းကိုကျရှုံးစေလိမ့်မည်။

5 ။ နမူနာကုဒ်

အထက်ပါကြိုတင်ကာကွယ်မှုများအပေါ် အခြေခံ. , ဤတွင်ပြည့်စုံပြီးလုပ်ငန်းလည်ပတ်မှုဥပမာဖြစ်သည်။

 <?php
// အလွတ်တစ်ခုဖန်တီးပါ
$image = imagecreatetruecolor(400, 300);

// အရောင်များကိုသတ်မှတ်ပါ
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);

// နောက်ခံဖြည့်ပါ
imagefill($image, 0, 0, $white);

// Vertices ကိုသတ်မှတ်ပါ
$points = [50, 50, 150, 50, 100, 150];

// ဖွင့်လှစ် polygons ဆွဲပါ
if (imageopenpolygon($image, $points, 3, $black)) {
    echo "အောင်မြင်စွာဆွဲပါ!";
} else {
    echo "ပုံဆွဲမအောင်မြင်ပါ,ကျေးဇူးပြု။ ကျသင့်ငွေတွက်ပေးပါ参数!";
}

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

အကယ်. သင်သည်အမှန်တကယ်အကျိုးသက်ရောက်မှုကိုမြင်လိုပါကအထက်ပါကုဒ်ကို draw_polygon.php ကို Save လုပ်နိုင်သည်။ ထို့နောက်သင်၏ဆာဗာကိုကြည့်ပါ။
https://m66.net/draw_polygon.php

6 ။ အခြားကြိုတင်ကာကွယ်မှုများ

  • PHP ဗားရှင်းအထောက်အပံ့များ (PHP 7.2+ ရှိ GD extension) ကို သေချာစေရန်သေချာပါစေ။

  • ပုံရိပ် output မတိုင်မီမှန်ကန်သော အကြောင်းအရာအမျိုးအစား ခေါင်းစဉ်ကိုသတ်မှတ်ရန်သေချာပါစေ။

  • Image အရင်းအမြစ်များကိုအသုံးပြုပြီးသည့်နောက်, Imagedestroy () ကို အမှတ်အသားပြုရန် () ကိုသုံးရန်သတိရပါ။

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

Imageopenpolygon () အယူမှားလာသောအခါ မှားယွင်းစွာ ပြန်ဆိုသည့်အခါများသောအားဖြင့်၎င်းကို parameter သည်အမှားအယွင်းများ သို့မဟုတ် ရုပ်ပုံအရင်းအမြစ်ပြ problems နာများ ကြောင့်ဖြစ်သည်။ အထက်ပါစစ်ဆေးရေးခြေလှမ်းများကိုတစ် ဦး ချင်းစီပြီးနောက်ပြ problems နာများ၏ 99% နီးပါးကိုဖြေရှင်းနိုင်သည်။