လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ImageCoLorresolve () နှင့် isagecopy () ဖြင့်ပုံတွင်သတ်မှတ်ထားသောအရောင်ကိုမည်သို့အစားထိုးရမည်နည်း။

ImageCoLorresolve () နှင့် isagecopy () ဖြင့်ပုံတွင်သတ်မှတ်ထားသောအရောင်ကိုမည်သို့အစားထိုးရမည်နည်း။

M66 2025-05-17

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

1 ။ ပုံရိပ်အရောင်အစားထိုး၏အယူအဆ

PHP တွင် GD စာကြည့်တိုက်တွင် ရုပ်ပုံများ တွင်အရောင်တောက်ပသော RGB တန်ဖိုးကိုရရှိရန်အသုံးပြုနိုင်သောရုပ်ပုံများကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက်လုပ်ငန်းဆောင်တာများစွာကိုအသုံးပြုသည်။ ဒီလုပ်ဆောင်ချက်နှစ်ခုမှတဆင့်ပုံရိပ်ထဲမှာတိကျသောအရောင်များကိုခွဲခြားသတ်မှတ်ပြီးအစားထိုးနိုင်သည်။

2 ။ အရောင်အစားထိုးအကောင်အထည်ဖော်ရန်အခြေခံအဆင့်များ

ဤတွင်အရောင်အစားထိုးခြင်းကိုအကောင်အထည်ဖော်ရန်အခြေခံအဆင့်များမှာ -

  • ပထမ ဦး ဆုံး 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);
?>

3 ။ ကုဒ်ရှင်းပြချက်

  • 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 ။

ဤချဉ်းကပ်နည်းဖြင့်မည်သည့်အရောင်ကိုမဆိုလိုအပ်သလိုမည်သည့်အရောင်ကိုမဆိုအစားထိုးနိုင်သည်။

4 ။ အဆင့်မြင့်အသုံးပြုမှု: cons ရိယာမှတဆင့်အရောင်အစားထိုးပါ

အကယ်. သင်သည်ပုံတစ်ခုလုံးကိုမကြားချင်ပါကပုံတစ်ပုံမှပုံတစ်ပုံမှအခြားဒေသများသို့လည်းသင် ကော်ပီ ကူးနေစဉ်အတွင်းအရောင်ပြောင်းသွားနိုင်သည်။ ဥပမာအားဖြင့်, သင်ပထမ ဦး ဆုံးအရောင်အစားထိုးတစ်ခု 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);
?>

5 ။ မှတ်စုဖို့အရာ

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

  • ပုံ၏နောက်ခံအရောင်သည်ရှုပ်ထွေးပြီးနောက်ခံကိုပထမ ဦး စွာလုပ်ဆောင်ရန်လိုအပ်လိမ့်မည်။

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

6 ။ နိဂုံးချုပ်

ISESECOSORRESOLVEVE () နှင့် is imagecopy ၏လုပ်ဆောင်ချက်နှစ်ခုကို သုံး. () , သင်သည်အလွန်ပြောင်းလွယ်ပြင်လွယ်ရှိသောပုံတစ်ပုံတွင်သီးခြားအရောင်များကိုအစားထိုးနိုင်သည်။ ၎င်းသည်ရိုးရှင်းသောတစ်ခုတည်းသောအရောင်အစားထိုးခြင်းသို့မဟုတ်ပိုမိုရှုပ်ထွေးသော area ရိယာကူးယူခြင်းနှင့်ပိုမိုရှုပ်ထွေးသောနေရာများတွင်ပိုမိုရှုပ်ထွေးသော area ရိယာအစားထိုးခြင်း,