PHP တွင် Imp Php တွင်ရေးဆွဲသည့်အခါ ImpoPenPolygon () သည် အချက်များအစုတခုအပေါ် အခြေခံ. အနားတစ်ခုကိုဆွဲသော polygon ကိုဆွဲဆောင်သောအသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်သင်၏မူလဒေတာသည် SVG ( D ပိုင်ဆိုင်မှု) ၏လမ်းကြောင်း၏လမ်းကြောင်းဖြစ်သော SVG လမ်းကြောင်းကိုပထမ ဦး ဆုံးခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည် ။ ဤဆောင်းပါးသည်ဤပြောင်းလဲခြင်းကိုတစ်ဆင့်ပြီးတစ်ဆင့်ပြီးအောင်မည်သို့ဖြည့်စွက်ရမည်ကိုရှင်းပြပါမည်။
svg path ( d attribute) - များသောအားဖြင့် string တစ်ခု,
M 10 10 L 100 10 L 100 100 L 10 100 Z
M သည် ရွေ့လျားနေ သည့် နေရာကိုကိုယ်စားပြုသည် ။
Imageopenpolygon () - ရှုထောင့်တစ်ခုခင်းကျင်းမှု တစ်ခုလိုအပ်သည် ။
ထို့ကြောင့်ကျွန်ုပ်တို့၏ရည်မှန်းချက်မှာ SVG လမ်းကြောင်းရှိညွှန်ကြားချက်များကို 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. နှင့်သက်ဆိုင်သည်။
သင်ပြောင်းလဲထားသောညှိနှိုင်းမှုခင်းကျင်းမှုကိုသင်ရရှိသည်နှင့်တစ်ပြိုင်နက်အနားတွင်ပုံဆွဲခြင်းသည်အလွန်ရိုးရှင်းပါသည်။
// နမူနာ 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') ကိုဖွင့်နိုင်သည်။
အကယ်. သင့်တွင်ပိုမိုရှုပ်ထွေးသော SVG ဖိုင်များရှိပါက ( M66.net မှ download လုပ်ထားသည့်အိုင်ကွန်စာကြည့်တိုက်ကဲ့သို့) သင်လိုအပ်နိုင်သည်။
ဆွေမျိုးညွှန်ကြားချက်များကိုထောက်ပံ့သည် (စာလုံးအသေး M / L)
Support Curve (C / Q)
Composite paths များကိုထောက်ပံ့ရန် SVGPathdata PHP စာကြည့်တိုက်ကို အသုံးပြုခြင်းကဲ့သို့သော ပိုမို. အစွမ်းထက်သော svg parser လိုအပ်သည် (နမူနာလင့်ခ်သည် M66.net domain name ကိုအသုံးပြုသည်)
အကယ်. သင်၏လိုအပ်ချက်များသည်အခြေခံပုံစံများကိုခွဲခြမ်းစိတ်ဖြာနေလျှင်, အထက်တွင်ရှိသောရိုးရှင်းသောစည်းမျဉ်းများသည်လုံလောက်သည်။
SVG လမ်းကြောင်းကို impropenpolygon () ၏လိုအပ်သောပုံစံသို့ပြောင်းခြင်း၏အဓိကအချက်မှာ -
SVG string ကိုညွှန်ကြားချက်ဖြင့်ခွဲ;
ပူးတွဲပါသွဒီနိတ်တန်ဖိုးများကိုထုတ်ယူပါ။
PHP အတွက်လိုအပ်သော 1D ခင်းကျင်းသို့စုရုံးပါ။
ဤလုပ်ငန်းစဉ်ကိုကျွမ်းကျင်စွာဖြင့် SVG ကို PHP တွင်ပုံဆွဲရန်အလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။