PHP ၏ပုံရိပ်ထုတ်ယူခြင်းလုပ်ဆောင်ချက်များတွင် isagecolorresolve () သည်အလွန်အသုံးများသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်း၏ function သည်လက်ရှိ palette image တွင်သတ်မှတ်ထားသောအရောင်နှင့်အနီးဆုံးအရောင်ကိုရှာဖွေရန်ဖြစ်သည်။ တွေ့ရင်အရောင်ရဲ့အညွှန်းကိန်းကိုပြန်လာတယ်။ မတွေ့ပါက၎င်းသည်သီအိုရီအရပျက်ကွက်ခြင်းနှင့်ပြန်လာသင့်သည် ။
သို့သော် developer များစွာသည် isagecolorresolve () ကို အသုံးပြုသောအခါစိတ်အနှောက်အယှက်ဖြစ်စေသည့်ပြ problem နာတစ်ခုနှင့်ကြုံတွေ့ရသည် ။ ဆိုလိုသည်မှာအရောင်ခွဲခြမ်းစိတ်ဖြာမှုမအောင်မြင်ဟုဆိုလိုသည်။ ဒီတော့ဘာဖြစ်လို့ဒီလိုဖြစ်ရတာလဲ။ ဘယ်လိုဖြေရှင်းမလဲ ဤဆောင်းပါးသည်အသေးစိတ်ဆွေးနွေးပါမည်။
ပုံသည် palette-based image မဟုတ်ပါ
isagecolorresolve () palette အမျိုးအစားပုံများပေါ်တွင်သာအလုပ်လုပ်နိုင်ပါသည် (ဥပမာ isagecreate () ဖြင့်ဖန်တီးထားသောပုံများ) ။ အကယ်. ပုံသည် TrueCoecolor Image (ဥပမာ isagecreatetorecolor () ဖြင့်ဖန်တီးသည့်နည်း) ဖြစ်ပါကဤလုပ်ဆောင်မှုသည်ကောင်းမွန်စွာအလုပ်လုပ်ခြင်းမရှိဘဲပုံမှန်အားဖြင့်တိုက်ရိုက်ပြန်လာကြလိမ့်မည်။
အရောင်အရေအတွက်သည်အထက်ကန့်သတ်ချက်သို့ရောက်သည်
Palette image သည်အရောင် 256 လုံးအထိရှိသည်။ အကယ်. ရုပ်ပုံ၏အရောင်အရေအတွက်သည်အထက်ပိုင်းကန့်သတ်ချက်သို့ရောက်သွားပါကအရောင်အသစ်တစ်ခုကိုထည့်သွင်းရန် isaecolorresolve () ကိုခေါ်ဆိုရန်ပျက်ကွက်ခြင်းနှင့်ပြန်လာခြင်းတို့က isionecolorresolve () ကိုခေါ်ဆိုခြင်းကပျက်ကွက်ခြင်းနှင့်ပြန်လာလိမ့်မည်။
Image အရင်းအမြစ်သည်မမှန်ကန်ပါသို့မဟုတ်ဖျက်ဆီးခံရသည်
အကယ်. ISEACOLORRESOLELELE () isionecolorresolve () သည်မမှန်ကန်ပါက, သယံဇာတ (သို့) သယံဇာတများကိုဖျက်ဆီးခြင်းကဲ့သို့ ( imagedestroy () ဟုခေါ်သည်) ကို (Imagedestroy) ဟုခေါ်သည်။
ဝင်သောအရောင် parameter သည်ပုံစံမမှန်ကန်ပါ
ISESECOSORRESOLVE () မှ လိုအပ်သောအရောင် parameter သည်သီးခြား RGB တန်ဖိုးဖြစ်သည်။ မှားယွင်းသောအချက်အလက်များကို 0-255 ထက်ကျော်လွန်သောကိန်းများကဲ့သို့ဖြစ်လျှင်၎င်းသည်မအောင်မြင်ရန်ခွဲခြမ်းစိတ်ဖြာခြင်းဖြစ်ပေါ်စေသည်။
ပတ်ဝန်းကျင်သို့မဟုတ် GD စာကြည့်တိုက်ပြ issues နာများ
ရှားရှားပါးပါးဖြစ်ရပ်များတွင် PHP ၏ GD extension သည်ချွတ်ယွင်းနေလျှင်သို့မဟုတ်ဗားရှင်းသည်အသက်ကြီးနေပြီဆိုပါက၎င်းသည်လုပ်ဆောင်ချက်ချွင်းချက်များကိုလည်းဖြစ်ပေါ်စေနိုင်သည်။
TrueColor Image အစား palette image တွင်သင်လည်ပတ်နေကြောင်းသေချာပါစေ။ ပုံရိပ်တွေကိုဖန်တီးဖို့ () imagecreate () ကို ဥပမာအားဖြင့်အသုံးပြုနိုင်ပါတယ်:
$image = imagecreate(100, 100); // palette image တစ်ခုဖန်တီးပါ
$white = imagecolorallocate($image, 255, 255, 255);
အကယ်. သင်သည် imagecreatetuecolor နှင့် trueecolor ပုံရိပ်ကိုဖန်တီးပါက၎င်းကို imagecreacolortopalte နှင့် palette image တစ်ခုသို့ပြောင်းလဲနိုင်သည် () :
$image = imagecreatetruecolor(100, 100);
// palette image သို့ပြောင်းပါ
imagetruecolortopalette($image, false, 256);
$colorIndex = imagecolorresolve($image, 255, 0, 0);
Current Image ၏အရောင်အရေအတွက်စုစုပေါင်းကိုစစ်ဆေးရန်သင်သည် imagecolorstotal () ကို သုံးနိုင်သည်။
$colors = imagecolorstotal($image);
if ($colors >= 256) {
echo "အရောင်ပြည့်နေပါတယ်,မည်သည့်အရောင်အသစ်ကိုမျှဆက်ထည့်နိုင်သည်。";
}
အကယ်. အရောင်ပြည့်နေလျှင်အရောင်များကိုပြန်လည်နေရာချထားခြင်းသို့မဟုတ်အလားတူအရောင်များပေါင်းစည်းပါ။
Image Resource သည် Invoked သောအခါမှန်ကန်ကြောင်းသေချာပါစေ။
if (!is_resource($image)) {
die('ပုံရိပ်အရင်းအမြစ်သည်မမှန်ကန်ပါသို့မဟုတ်ဖျက်ဆီးခံရသည်');
}
PHP 8.0+ ပြီးနောက် IS_RESSource () ကို GetType ($ image) နှင့်အတူအကဲဖြတ်ရန်အစားအသုံးပြုနိုင်သည်။
RGB တန်ဖိုးသည် 0 နှင့် 255 ကြားတွင်ကိန်းတစ်ခုဖြစ်ရမည်။ ဥပမာ -
$red = 255;
$green = 0;
$blue = 0;
if ($red >= 0 && $red <= 255 && $green >= 0 && $green <= 255 && $blue >= 0 && $blue <= 255) {
$colorIndex = imagecolorresolve($image, $red, $green, $blue);
} else {
echo "RGBတန်ဖိုးကိုတရားဝင်ဖြစ်ပါတယ်";
}
လက်ရှိ GD PHP configuration ကိုအောက်ပါကုဒ်များမှတဆင့်ကြည့်ရှုနိုင်သည်။
echo gd_info()["GD Version"];
ဗားရှင်းသည်အလွန်နိမ့်သည်ဟုသင်တွေ့ရှိပါကဆာဗာ၏ PHP သို့မဟုတ် GD စာကြည့်တိုက်ကိုအဆင့်မြှင့်တင်ရန်စဉ်းစားနိုင်သည်။
ပြီးပြည့်စုံသောဥပမာ -
<?php
$image = imagecreate(100, 100); // အရောင် palette ပုံကိုဖန်တီးပါ
$background = imagecolorallocate($image, 255, 255, 255); // အဖြူရောင်နောက်ခံ
$redIndex = imagecolorresolve($image, 255, 0, 0); // အနီရောင်ရဖို့ကြိုးစားပါ
if ($redIndex == -1) {
echo "အရောင်ခွဲခြမ်းစိတ်ဖြာပျက်ကွက်,ကျေးဇူးပြု. ပုံအမျိုးအစားသို့မဟုတ်အရောင်အရေအတွက်ကိုစစ်ဆေးပါ。";
} else {
echo "အနီရောင်အရောင်အညွှန်းကိန်းဖြစ်ပါတယ်: " . $redIndex;
}
// browser မှ output ကိုပုံရိပ်(သာဥပမာအားဖြင့်သာ)
header('Content-Type: image/png');
imagepng($image);
// အရင်းအမြစ်များကိုသန့်ရှင်းရေး
imagedestroy($image);
?>
PHP Image processing teachings အကြောင်းပိုမိုလေ့လာလိုပါက https://m66.net/php-Gd-imessage-imessing- တိကျသော https://m66.net/php-Gd-imessing- တိကျသော https:
ISEECOSORRESOLVELSOLVELELE () ကိုအမြဲတမ်းပြန်လည်ရောက်ရှိသည့်အခါ၎င်းသည်အခြေခံအားဖြင့် ပုံအမျိုးအစားအမှားတစ်ခု ကြောင့်ဖြစ်ရခြင်းသို့မဟုတ် အရောင်အရေအတွက်ကန့်သတ်ချက်ထက်ကျော်လွန်သည် ။ အထက်ပါနည်းလမ်းအတိုင်းပြ troubl နာကိုဖြေရှင်းရန်သင်ပြ the နာကိုရှာပြီး၎င်းကိုလွယ်ကူစွာဖြေရှင်းနိုင်သည်။