PHP တွင် Image processing သည်အလွန်လက်တွေ့ကျပြီးအစွမ်းထက်သောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ Imageopenpolygon () နှင့် imagecopymerge () ကဲ့သို့သော GD စာကြည့်တိုက်တွင်ရှိသောလုပ်ငန်းဆောင်တာများတွင်လုပ်ငန်းသုံးဖိုင်များကို အသုံးပြု. Complex Image Synthesis အကျိုးသက်ရောက်မှုများကိုအလွယ်တကူအောင်မြင်နိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုခြေလှမ်းတစ်လှမ်းအသုံးပြုခြင်းကိုမိတ်ဆက်ပေးပြီး, ရိုးရှင်းသောဥပမာအားဖြင့်သူတို့၏လက်တွေ့ကျအပလီကေးရှင်းကိုသရုပ်ပြပါမည်။
Imageopenpolygon () သည် polygons များကိုဖွင့်ရန်အသုံးပြုသော function တစ်ခုဖြစ်ပြီးပုံတစ်ပုံတွင် Polygons ကိုဖွင့်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool imageopenpolygon ( GdImage $image , array $points , int $num_points , int $color )
$ Image : Image image အရင်းအမြစ်။
$ ရမှတ်များ - [X1, Y1, X2, Y2 ကဲ့သို့သောညှိနှိုင်းချက်များပါ 0 င်သည့် array တစ်ခု။
$ numpoints : အချက်များအရေအတွက်။
$ အရောင် - မျဉ်း၏အရောင်ကိုရေးဆွဲထားသည်။
မှတ်ချက် - ImagePolygon () , Imageopenpolygon () နှင့်မတူဘဲအစနှင့်အဆုံးမှတ်များကိုအလိုအလျောက်ချိတ်ဆက်ခြင်းမရှိပါ။
imagecopymerge () ပုံရိပ်တစ်ခု၏အစိတ်အပိုင်းများကိုအခြားပုံတစ်ပုံထည့်ရန်အသုံးပြုသည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool imagecopymerge(
GdImage $dst_image,
GdImage $src_image,
int $dst_x, int $dst_y,
int $src_x, int $src_y,
int $src_width, int $src_height,
int $pct
)
$ DST_IMARE : ပုံရိပ်အရင်းအမြစ်ကိုပစ်မှတ်ထားသည်။
$ src_image : အရင်းအမြစ်ပုံရိပ်အရင်းအမြစ်။
$ DST_X, $ DST_Y - အရင်းအမြစ်ပုံရိပ်ကိုပစ်မှတ်ပုံပေါ်၌ရေးထားသည့်အစမှတ်၏သွဒီနိတ်များ။
$ src_x, $ src_y : အရင်းအမြစ်ပုံရိပ်ကိုကူးယူရန်အစမှတ်။
$ src_width, $ src_height : မိတ္တူ၏အနံနှင့်အမြင့်။
$ PCT : ပေါင်းစည်း Transparency (0 = လုံးဝပွင့်လင်းမြင်သာမှု, 100 = လုံးဝ opaque) ။
ဒီနေရာမှာပြီးပြည့်စုံတဲ့ဥပမာတစ်ခုပါ။ Imageopenpolygon () ကို ရိုးရှင်းတဲ့ဂရပ်တစ်ခုကိုဆွဲပြီးနောက်ခံပုံဆွဲခြင်း () imagecopymerge () နဲ့ပေါင်းစပ်ဖို့သုံးမယ်။
<?php
// နောက်ခံပုံတစ်ခုဖန်တီးပါ
$background = imagecreatetruecolor(400, 300);
$white = imagecolorallocate($background, 255, 255, 255);
imagefill($background, 0, 0, $white);
// foreground မြေပုံကိုဖန်တီးပါ(Polygonal ဂရပ်ဖစ်)
$polygon = imagecreatetruecolor(200, 200);
$transparent = imagecolorallocatealpha($polygon, 0, 0, 0, 127);
imagefill($polygon, 0, 0, $transparent);
imagesavealpha($polygon, true);
// တစ် polygon ၏အချက်ကိုသတ်မှတ်ပါ
$points = [
50, 50,
150, 50,
150, 150,
50, 150
];
// အရောင်များကိုသတ်မှတ်ပါ
$red = imagecolorallocate($polygon, 255, 0, 0);
// ဖွင့်လှစ် polygons ဆွဲပါ
imageopenpolygon($polygon, $points, count($points) / 2, $red);
// ပုံများ synthesize
imagecopymerge($background, $polygon, 100, 50, 0, 0, 200, 200, 70);
// browser မှ output ကိုပုံရိပ်
header('Content-Type: image/png');
imagepng($background);
// အရင်းအမြစ်များကိုအခမဲ့
imagedestroy($background);
imagedestroy($polygon);
?>
ဒီဥပမာမှာကျွန်တော်တို့ဟာအဖြူရောင်နောက်ခံရှိပုံရိပ်ကို ဦး စွာဖန်တီးပြီးနောက်ခံပုံဖော်ပါ။ Theeopenpolygon () တွင်အနီရောင်ပွင့်လင်းသောစတုရန်းအောက်လိုင်းကိုဆွဲယူပါ ။
အကယ်. သင်သည်နောက်ဆုံးရလဒ်ကို browser မှ output မလုပ်မည့်အစားဖိုင်တစ်ခုအဖြစ်သိမ်းဆည်းလိုပါက Imposg ($ နောက်ခံ) ကိုအစားထိုးပါ။ :
imagepng($background, '/path/to/your/folder/merged_image.png');
ဟုတ်ပါတယ်, ဒီနေရာမှာ / လမ်းကြောင်း / / သင်၏ / folder / folder / pater ကိုသင်၏ကိုယ်ပိုင်ဆာဗာလိပ်စာဖြင့်အစားထိုးနိုင်သည်။
imagepng($background, 'https://m66.net/uploads/merged_image.png');
Imageopenpolygon () နှင့် imagecopymerge () ပေါင်းစပ်ခြင်းဖြင့် () , ကျွန်ုပ်တို့သည်အမျိုးမျိုးသောပုံရိပ်ကိုပိုမိုကောင်းမွန်စွာရောနှောခြင်းနှင့်ပြောင်းလွယ်ပြင်လွယ်ပုံသဏ္ဌာန်ကိုအလွယ်တကူရောစပ်နိုင်သည်။ ဤနည်းပညာကို Avatar Synamises, Devarmer ထုတ်လုပ်ခြင်း, ပြောင်းလဲနေသောဂရပ်ဖစ်ထုတ်လုပ်ခြင်းနှင့်အခြားအခြေအနေများတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုနိုင်သည်။