လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> SVG လမ်းကြောင်းကို Imageopenpolygon () function မှအသိအမှတ်ပြုသည့်သွဒီနိတ်များသို့ပြောင်းလဲနည်း။

SVG လမ်းကြောင်းကို Imageopenpolygon () function မှအသိအမှတ်ပြုသည့်သွဒီနိတ်များသို့ပြောင်းလဲနည်း။

M66 2025-06-12

PHP တွင် Imp Php တွင်ရေးဆွဲသည့်အခါ ImpoPenPolygon () သည် အချက်များအစုတခုအပေါ် အခြေခံ. အနားတစ်ခုကိုဆွဲသော polygon ကိုဆွဲဆောင်သောအသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်သင်၏မူလဒေတာသည် SVG ( D ပိုင်ဆိုင်မှု) ၏လမ်းကြောင်း၏လမ်းကြောင်းဖြစ်သော SVG လမ်းကြောင်းကိုပထမ ဦး ဆုံးခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည် ဤဆောင်းပါးသည်ဤပြောင်းလဲခြင်းကိုတစ်ဆင့်ပြီးတစ်ဆင့်ပြီးအောင်မည်သို့ဖြည့်စွက်ရမည်ကိုရှင်းပြပါမည်။

svg လမ်းကြောင်းနှင့် Imageopenpolygon အကြားခြားနားချက်ကိုနားလည်ပါ ()

  • svg path ( d attribute) - များသောအားဖြင့် string တစ်ခု,

     M 10 10 L 100 10 L 100 100 L 10 100 Z
    

    M သည် ရွေ့လျားနေ သည့် နေရာကိုကိုယ်စားပြုသည်

  • Imageopenpolygon () - ရှုထောင့်တစ်ခုခင်းကျင်းမှု တစ်ခုလိုအပ်သည်

ထို့ကြောင့်ကျွန်ုပ်တို့၏ရည်မှန်းချက်မှာ SVG လမ်းကြောင်းရှိညွှန်ကြားချက်များကို svg လမ်းကြောင်းရှိထိုကဲ့သို့သောခင်းကျင်းခြင်းသို့ဘာသာပြန်ဆိုရန်ဖြစ်သည်။

အဆင့် 1: Extract SVG ကိုသွဒီနိတ်

ပထမ ဦး စွာကျွန်ုပ်တို့သည် D attribute string ကို svg svg ကိုခွဲခြမ်းစိတ်ဖြာရန်နှင့်အသုံးဝင်သောသွဒီနိတ်များကိုထုတ်ယူရန်လိုအပ်သည်။ ၎င်းကိုရိုးရှင်းသောပုံမှန်ကိုက်ညီမှုဖြင့်ပြုလုပ်နိုင်သည်။

 function parseSvgPathToPoints($svgPath) {
    $commands = preg_split('/(?=[MLZmlz])/', $svgPath, -1, PREG_SPLIT_NO_EMPTY);
    $points = [];

    foreach ($commands as $command) {
        $type = strtoupper(substr(trim($command), 0, 1));
        $coords = trim(substr(trim($command), 1));

        if ($type === 'M' || $type === 'L') {
            $pairs = preg_split('/[\s,]+/', $coords);
            for ($i = 0; $i < count($pairs) - 1; $i += 2) {
                $x = (float)$pairs[$i];
                $y = (float)$pairs[$i + 1];
                $points[] = $x;
                $points[] = $y;
            }
        } elseif ($type === 'Z') {
            // 'Z' တံခါးပိတ်လမ်းကြောင်းကိုဖော်ပြသည်,ရွေးချယ်ခြင်းကိုင်တွယ်နိုင်ပါတယ်(ဥပမာအားဖြင့်အစမှအဆုံးသို့ကူးယူခြင်း)
        }
    }

    return $points;
}

သိကောင်းစရာများ:

အကယ်. သင်၏ SVG လမ်းကြောင်းသည် C (Curve ညွှန်ကြားချက်) ကဲ့သို့သောရှုပ်ထွေးသောညွှန်ကြားချက်များပါ 0 င်ပါကဤရိုးရှင်းသောခွဲခြမ်းစိတ်ဖြာခြင်းကို မထောက်ပံ့ပါ ။ ဤတွင်ကျွန်ုပ်တို့သည်အဓိကအားဖြင့်အခြေခံ မီတာ , L နှင့် Z. နှင့်သက်ဆိုင်သည်။

အဆင့် 2: Imageopenpolygon () ကိုဆွဲရန်သုံးပါ

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

 // နမူနာ SVG ခေြလမ်း
$svgPath = 'M 10 10 L 100 10 L 100 100 L 10 100 Z';

// 解析ခေြလမ်း
$points = parseSvgPathToPoints($svgPath);

// ပုံရိပ်တစ်ခုဖန်တီးပါ
$image = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);

imagefill($image, 0, 0, $white);

// Polygons ဆွဲပါ
imageopenpolygon($image, $points, count($points) / 2, $black);

// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);

ဤ PPP ဖိုင်ကိုရယူသည့်အခါ၎င်းသည်ရေးဆွဲထားသော polygon image ကိုတိုက်ရိုက်ပြသလိမ့်မည်။ အကယ်. သင်သည် output အစားဖိုင်ကိုသိမ်းဆည်းလိုပါက imagePng (image image image image image's 'your_path.png') ကိုဖွင့်နိုင်သည်။

အဆင့် 3. ပိုမိုရှုပ်ထွေးသောမြင်ကွင်းများကိုပြုပြင်ခြင်း

အကယ်. သင့်တွင်ပိုမိုရှုပ်ထွေးသော SVG ဖိုင်များရှိပါက ( M66.net မှ download လုပ်ထားသည့်အိုင်ကွန်စာကြည့်တိုက်ကဲ့သို့) သင်လိုအပ်နိုင်သည်။

  • ဆွေမျိုးညွှန်ကြားချက်များကိုထောက်ပံ့သည် (စာလုံးအသေး M / L)

  • Support Curve (C / Q)

  • Composite paths များကိုထောက်ပံ့ရန် SVGPathdata PHP စာကြည့်တိုက်ကို အသုံးပြုခြင်းကဲ့သို့သော ပိုမို. အစွမ်းထက်သော svg parser လိုအပ်သည် (နမူနာလင့်ခ်သည် M66.net domain name ကိုအသုံးပြုသည်)

အကယ်. သင်၏လိုအပ်ချက်များသည်အခြေခံပုံစံများကိုခွဲခြမ်းစိတ်ဖြာနေလျှင်, အထက်တွင်ရှိသောရိုးရှင်းသောစည်းမျဉ်းများသည်လုံလောက်သည်။

အကျဉ်းချုပ်

SVG လမ်းကြောင်းကို impropenpolygon () ၏လိုအပ်သောပုံစံသို့ပြောင်းခြင်း၏အဓိကအချက်မှာ -

  1. SVG string ကိုညွှန်ကြားချက်ဖြင့်ခွဲ;

  2. ပူးတွဲပါသွဒီနိတ်တန်ဖိုးများကိုထုတ်ယူပါ။

  3. PHP အတွက်လိုအပ်သော 1D ခင်းကျင်းသို့စုရုံးပါ။

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