လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ISESECOSOLOLELELELESOLVELE () ကိုပျက်ပြားစေသည့်နည်းစနစ်များ

ISESECOSOLOLELELELESOLVELE () ကိုပျက်ပြားစေသည့်နည်းစနစ်များ

M66 2025-05-17

PHP ၏ GD စာကြည့်တိုက်ကို အသုံးပြု. Imagecolorresolve () ကို အသုံးပြု. ပုံများနှင့်အလုပ်လုပ်သည့်အခါ image အရင်းအမြစ်တွင်အနီးဆုံးအရောင်အညွှန်းကိန်းကိုရှာဖွေရန်အသုံးပြုသော function ကိုအသုံးပြုသော function ဖြစ်သည်။ အကယ်. သင်သည် isagecolorresolveololve () ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ပျက်ကွက်မှုကြုံတွေ့ရပါက, အောက်တွင်ဖော်ပြထားသောအကြောင်းရင်းများကိုအသေးစိတ်လေ့လာပြီးပြ troubl နာဖြေရှင်းခြင်းနှင့်ဖြေရှင်းနည်းများကိုဖော်ပြလိမ့်မည်။

Image အမျိုးအစားများတွင်သဟဇာတဖြစ်ခြင်းသည်အဘယ်ကြောင့် isaecolorresolve () ပျက်ကွက်ရန် () သည်အဘယ်ကြောင့်ပျက်ကွက်သနည်း။

Imagecolorresolve () သည် 0 င်ရောက်လာသည့်ပုံရိပ်အရင်းအမြစ်သည် gif သို့မဟုတ် 8-bit png ကဲ့သို့သော palette-based image ဖြစ်ရမည်ဟုလိုအပ်သည်။ အကယ်. သင်သည် imagecreatetuecolorcolor () ဖန်တီးထားသောအရင်းအမြစ် () ကိုဖန်တီးသောအရင်းအမြစ်ကဲ့သို့သော စစ်မှန်တဲ့အရောင်ပုံရိပ် တစ်ခုသို့ဖြတ်သန်းသွားပါ က -1 သို့ပြန်လာလိမ့်မည်။

အဘယ်ကြောင့်ဆိုသော် Pixel တစ်ခုတွင်အရောင်တင်ခြင်း, isoloceololve () တွင်အရောင်များကိုရှာဖွေရန်လိုအပ်သည့်အရောင်အသွေးစုံညီပုံရိပ်များသည်အရောင်အသွေးစုံညီအစည်းအဝေးတစ်ခုစီအပေါ် အခြေခံ. အရောင်အသွေးစုံညီအစည်းအဝေးများကိုသိုလှောင်ထားသည့်အတွက်ကြောင့်သဘာဝကျကျမတွေ့ရပါ။

ရိုးရှင်းတဲ့ဥပမာတစ်ခုပေးပါက:

 <?php
// စစ်မှန်သောအရောင်ပုံရိပ်ကိုဖန်တီးပါ
$image = imagecreatetruecolor(100, 100);

// အရောင်ခွဲဖို့ကြိုးစားပါ
$color = imagecolorresolve($image, 255, 0, 0);

if ($color == -1) {
    echo "အရောင်ရှာမရပါ,ဒီတစ်ခါလည်းပုံရိပ်အမျိုးအစားသဟဇာတဖြစ်ပါတယ်。";
}
?>

ဤကုဒ်သည်အမှားအယွင်း တစ်ခုဖြစ် လိမ့်မည်

ဒီပြ problem နာကိုဘယ်လိုဖြေရှင်းမလဲ

  1. Image Type ကိုအတည်ပြုပါ ImageSistruecolor () ပုံရိပ်သည်စစ်မှန်သောအရောင်ပုံရိပ်ဟုတ်မဟုတ်စစ်ဆေးရန်။

     if (imageistruecolor($image)) {
        echo "လက်ရှိပုံမှာ truecolor,တိုက်ရိုက်မသုံးနိုင်ပါ imagecolorresolve()。";
    }
    
  2. အမှားမှတ်တမ်းကိုကြည့်ပါ
    PHP Runtime သည်အမှားမှတ်တမ်းတွင် "Image type" ကဲ့သို့သောသတိပေးချက်များကိုမှတ်တမ်းတင်ထားသည်။ Display_Erues ကို ဖွင့်ရန်နှင့်ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်ကြည့်ရှုရန်အကြံပြုသည်။

  3. ကိုယ်တိုင် source code ကိုလက်ဖြင့်စစ်ဆေးပါ အကယ်. ပုံသည်ပြင်ပအရင်းအမြစ်မှ 0 င်ပါက (ဥပမာ, imagecreatjpeg () , imagecreatjpeg (), Imagecreatfinmjpg () ), မတူကွဲပြားသောပုံစံများကို default processing method ကိုအာရုံစိုက်ပါ။ ဥပမာအားဖြင့်, loaded PNG သည် 8-bit palette image အစား 24-bit trual အရောင်ဖြစ်နိုင်သည်။

ဘယ်လိုဖြေရှင်းမလဲ

နည်းလမ်း 1 - စစ်မှန်တဲ့အရောင်ပုံရိပ်များကို palette ပုံရိပ်တွေအဖြစ်ပြောင်းပါ

မှန်ကန်သောအရောင်မှာ imagetruecolortopalette () စစ်မှန်သောအရောင်ပုံရိပ်များကို palette images များအဖြစ်ပြောင်းလဲရန်ဖြစ်သည်။

 <?php
$image = imagecreatetruecolor(100, 100);

// palette image သို့ပြောင်းပါ
imagetruecolortopalette($image, false, 256);

// ယခုအသုံးပြုရန်လုံခြုံ imagecolorresolve()
$color = imagecolorresolve($image, 255, 0, 0);

echo "အရောင်အညွှန်းကိန်းဖြစ်ပါတယ်:$color";
?>

မှတ်ချက် ပြောင်းလဲခြင်းအတွင်းမှားယွင်းသောအဖြေကို မှားယွင်းစွာ သတ်မှတ်ထားပါ။ NCOLORS သည် အရောင်အရေအတွက် (များသောအားဖြင့် 256) ကိုသတ်မှတ်သည်။

နည်းလမ်း 2- မှန်ကန်သောအရောင်ပုံရိပ်တွေအတွက်သင့်တော်တဲ့ function ကိုသုံးပါ

Images ကိုပြောင်းလဲလိုပါက ISESECOSORSOLVE () ထက်စစ်မှန်သောအရောင်ပုံရိပ်များတွင်အရောင်များကိုသတ်မှတ်ရန်,

 <?php
$image = imagecreatetruecolor(100, 100);

// တိုက်ရိုက်အရောင်များကိုသတ်မှတ်ပါ
$color = imagecolorallocate($image, 255, 0, 0);

if ($color === false) {
    echo "အရောင်ခွဲဝေမှုမအောင်မြင်。";
} else {
    echo "အရောင်ဖြန့်ဝေအောင်မြင်စွာ,အရောင်အညွှန်းကိန်းဖြစ်ပါတယ်:$color";
}
?>

imagecolorallallation () palette ရုပ်ပုံများနှင့်စစ်မှန်သောအရောင်ပုံရိပ်တွေအတွက်သင့်လျော်သည်, ဒါကြောင့်ပိုပြီးယေဘုယျဖြစ်ပါတယ်။

အပြည့်အဝပြ esh နာဖြေရှင်းခြင်းလုပ်ငန်းစဉ်ဥပမာ

URL https://m66.net/uploads/image.png မှဓာတ်ပုံတစ်ပုံကိုကျွန်ုပ်တို့လုပ်ဆောင်သည်ဆိုပါစို့။

 <?php
$imagePath = 'https://m66.net/uploads/image.png';

// ပုံကိုတင်ခြင်း
$image = imagecreatefrompng($imagePath);

// ဒါကစစ်မှန်တဲ့အရောင်ရှိမရှိစစ်ဆေးပါ
if (imageistruecolor($image)) {
    // palette image သို့ပြောင်းပါ
    imagetruecolortopalette($image, false, 256);
}

// ယခုရရှိနိုင်ပါသည် imagecolorresolve()
$color = imagecolorresolve($image, 0, 128, 255);

if ($color == -1) {
    echo "အရောင်ခွဲခြမ်းစိတ်ဖြာပျက်ကွက်。";
} else {
    echo "အရောင်အညွှန်းကိန်းကိုအောင်မြင်စွာတွေ့ရှိခဲ့သည်:$color";
}
?>

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် ISESECOSORSOLVEL () အမှားအယွင်းများကိုရှောင်ရှားရန်ပုံရိပ်အမျိုးအစားများနှင့်လိုက်ဖက်နိုင်သည်။

အကျဉ်းချုပ်

isagecolorresolve () ပျက်ကွက်မှုအတွက်အသုံးအများဆုံးအကြောင်းပြချက် () ပျက်ကွက်ခြင်းသည်သဟဇာတမဖြစ်သောပုံအမျိုးအစားများဖြစ်သည်။ စုံစမ်းစစ်ဆေးရန်အောက်ပါအဆင့်နှစ်ဆင့်ကိုသင်လိုက်နာနေသမျှကာလပတ်လုံးပြ problems နာအများစုသည်လျင်မြန်စွာတည်ရှိပြီးပုံသေနိုင်သည်။

  • Image type သည်စစ်မှန်တဲ့အရောင်ရှိမရှိစစ်ဆေးပါ။

  • ပုံရိပ်အမျိုးအစားကိုပြောင်းရန်သို့မဟုတ် (ဥပမာ agrecoloranation နေရာ) ) ကိုသုံးရန်သို့မဟုတ်သင့်တော်သော function ကိုသုံးရန်ရွေးချယ်ပါ။

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