PHP နှင့်အလုပ်လုပ်သောအခါတစ်ခါတစ်ရံတွင်တိကျသောအရောင်များကိုပုံတွင်အစားထိုးရန်လိုအပ်သည်။ PHP ၏ GD စာကြည့်တိုက် သည် ရုပ်ပုံများကိုအသုံးချရန်အစွမ်းထက်သောလုပ်ဆောင်ချက်အချို့ကိုပေးသည် ။ ဤဆောင်းပါးသည်ပုံတွင်သတ်မှတ်ထားသောအရောင်ကိုအစားထိုးရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။
PHP တွင် GD စာကြည့်တိုက်တွင် ရုပ်ပုံများ တွင်အရောင်တောက်ပသော RGB တန်ဖိုးကိုရရှိရန်အသုံးပြုနိုင်သောရုပ်ပုံများကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက်လုပ်ငန်းဆောင်တာများစွာကိုအသုံးပြုသည်။ ဒီလုပ်ဆောင်ချက်နှစ်ခုမှတဆင့်ပုံရိပ်ထဲမှာတိကျသောအရောင်များကိုခွဲခြားသတ်မှတ်ပြီးအစားထိုးနိုင်သည်။
ဤတွင်အရောင်အစားထိုးခြင်းကိုအကောင်အထည်ဖော်ရန်အခြေခံအဆင့်များမှာ -
ပထမ ဦး ဆုံး image file ကိုတင်ပါ။
အရောင်ကိုအစားထိုးရန် ISEACOSORRESOLELE () ကိုသုံးပါ။
အစားထိုးအရောင် areas ရိယာများကိုမူရင်းပုံသို့ synthesize လုပ်ရန် စိတ်ကူးယဉ် () ကို သုံးပါ။
နောက်ဆုံးတွင်ပြုပြင်ထားသောပုံရိပ်သည် output ကိုသို့မဟုတ်ကယ်တင်ခြင်းသို့ရောက်သည်။
ဤတွင်အရောင်အစားထိုးခြင်းကိုအကောင်အထည်ဖော်ရန်ဥပမာကုဒ်ဖြစ်သည်။
<?php
// ဓာတ်ပုံများတင်နေသည်
$imagePath = 'path/to/your/image.png';
$image = imagecreatefrompng($imagePath);
// အစားထိုးဖို့အရောင်ရယူပါ(ဖြင့် RGB တန်ဖိုးကိုနိုင်လိမ့်မည်)
$replaceColor = imagecolorresolve($image, 255, 0, 0); // နီသော (255, 0, 0)
$newColor = imagecolorallocate($image, 0, 255, 0); // အရောင်အသစ်များ(စိမ်းလန်းသော)
// ပုံ၏အကျယ်နှင့်အမြင့်ကိုရယူပါ
$width = imagesx($image);
$height = imagesy($image);
// ပုံထဲမှာ pixel အမှတ်တစ်ခုချင်းစီမှတစ်ဆင့်ကြား,သတ်မှတ်ထားသောအရောင်အစားထိုးပါ
for ($y = 0; $y < $height; $y++) {
for ($x = 0; $x < $width; $x++) {
$currentColor = imagecolorat($image, $x, $y);
if ($currentColor == $replaceColor) {
// 用အရောင်အသစ်များ替换旧的颜色
imagesetpixel($image, $x, $y, $newColor);
}
}
}
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
// မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်
imagedestroy($image);
?>
imagecreatfinfmpng () : သတ်မှတ်ထားသောလမ်းကြောင်းမှ PNG ပုံရိပ်ကိုတင်ပါ။
Passed RGB တန်ဖိုးကို အခြေခံ. Imagecolorresolve () - အရင်အရောင်ကိုရယူပါ။ ဤနေရာတွင် Image တွင် Red Pixels ကို isagecolorresolve ($ Image, 255, 0. 0) မှတဆင့်ရရှိသည်။
imagecoloranation () - ပုံတွင်အရောင်အသစ်တစ်ခုသတ်မှတ်ပါ, ဤတွင်အနီရောင်အစားထိုးရန်အစိမ်းရောင် (0, 255, 0. 0) ကိုကျွန်ုပ်တို့ရွေးချယ်သည်။
Imagesx () နှင့် ရုပ်ပုံများ () ပုံရိပ်၏အကျယ်နှင့်အမြင့်ကိုရယူပါ။
imagecolorat () - သတ်မှတ်ထားသော pixel အမှတ်၏အရောင်တန်ဖိုးကိုရရှိသည်။
Imagesetpixel () - သတ်မှတ်ထားသော pixel အမှတ်၏အရောင်ကိုအရောင်အသစ်သို့သတ်မှတ်သည်။
ImagePng () : ပြုပြင်ထားသောရုပ်ပုံ output ကို output ။
ဤချဉ်းကပ်နည်းဖြင့်မည်သည့်အရောင်ကိုမဆိုလိုအပ်သလိုမည်သည့်အရောင်ကိုမဆိုအစားထိုးနိုင်သည်။
အကယ်. သင်သည်ပုံတစ်ခုလုံးကိုမကြားချင်ပါကပုံတစ်ပုံမှပုံတစ်ပုံမှအခြားဒေသများသို့လည်းသင် ကော်ပီ ကူးနေစဉ်အတွင်းအရောင်ပြောင်းသွားနိုင်သည်။ ဥပမာအားဖြင့်, သင်ပထမ ဦး ဆုံးအရောင်အစားထိုးတစ်ခု an ရိယာတစ်ခုသို့ပထမ ဦး ဆုံးလျှောက်ထားနိုင်ပြီးထို area ရိယာကိုအခြားနေရာတစ်ခုသို့ကူးယူပါ။
<?php
// ဓာတ်ပုံများတင်နေသည်
$image = imagecreatefrompng('path/to/your/image.png');
// အစားထိုးဖို့အရောင်ရယူပါ
$replaceColor = imagecolorresolve($image, 255, 0, 0); // နီသော (255, 0, 0)
$newColor = imagecolorallocate($image, 0, 255, 0); // အရောင်အသစ်များ(စိမ်းလန်းသော)
// ပုံ၏အကျယ်နှင့်အမြင့်ကိုရယူပါ
$width = imagesx($image);
$height = imagesy($image);
// အရောင်များကိုအစားထိုးရန်ယာယီပုံရိပ်တစ်ခုဖန်တီးပါ
$tempImage = imagecreatetruecolor($width, $height);
imagecopy($tempImage, $image, 0, 0, 0, 0, $width, $height);
// အရောင် area ရိယာအစားထိုးပါ
for ($y = 0; $y < $height; $y++) {
for ($x = 0; $x < $width; $x++) {
$currentColor = imagecolorat($tempImage, $x, $y);
if ($currentColor == $replaceColor) {
imagesetpixel($tempImage, $x, $y, $newColor);
}
}
}
// အသုံးပြု imagecopy() ပြုပြင်ထားသော area ရိယာကိုကူးယူပါ
imagecopy($image, $tempImage, 0, 0, 0, 0, $width, $height);
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
// မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်
imagedestroy($image);
imagedestroy($tempImage);
?>
အရောင်များကိုအစားထိုးသည့်အခါပစ်မှတ်အရောင်သည်မူရင်းပုံရိပ်တွင်အရောင်နှင့်ဆင်တူကြောင်းသေချာပါစေ, သို့မဟုတ်ပါကလုံးဝအစားထိုးမည်မဟုတ်ပါ။
ပုံ၏နောက်ခံအရောင်သည်ရှုပ်ထွေးပြီးနောက်ခံကိုပထမ ဦး စွာလုပ်ဆောင်ရန်လိုအပ်လိမ့်မည်။
ရုပ်ပုံကြီးများနှင့်အလုပ်လုပ်သောအခါမှတ်ဉာဏ်ယိုစိမ့်မှုများကိုကာကွယ်ရန်အရင်းအမြစ်များကိုသန့်ရှင်းရေးလုပ်ရန်သတိရပါ။
ISESECOSORRESOLVEVE () နှင့် is imagecopy ၏လုပ်ဆောင်ချက်နှစ်ခုကို သုံး. () , သင်သည်အလွန်ပြောင်းလွယ်ပြင်လွယ်ရှိသောပုံတစ်ပုံတွင်သီးခြားအရောင်များကိုအစားထိုးနိုင်သည်။ ၎င်းသည်ရိုးရှင်းသောတစ်ခုတည်းသောအရောင်အစားထိုးခြင်းသို့မဟုတ်ပိုမိုရှုပ်ထွေးသော area ရိယာကူးယူခြင်းနှင့်ပိုမိုရှုပ်ထွေးသောနေရာများတွင်ပိုမိုရှုပ်ထွေးသော area ရိယာအစားထိုးခြင်း,