Image Phil အတွက် PHP ကိုအသုံးပြုသောအခါ isionecolorresolve () function ကို အသုံးပြု. သတ်မှတ်ထားသော RGB တန်ဖိုးနှင့်အနီးဆုံးအရောင်အညွှန်းကိန်းရရှိရန်အသုံးပြုသည်။ ၎င်းသည်ပုံများပြုပြင်ခြင်း, ပုံများကိုအစားထိုးခြင်း, သို့သော် isionecolorresolve () function သည်အရောင်ကိုက်ညီမှုရှိသည့်အခါအထူးသဖြင့်ပုံ၏အရောင် palette သည်အကန့်အသတ်ရှိသော်လည်းပုံရိပ်အရောင်သည်ပစ်မှတ်အရောင်နှင့်အလွန်နီးကပ်သည်။
ဤဆောင်းပါးသည်အရောင်ကိုက်ညီမှုဖြစ်သည့် အရောင်နှင့်ကိုက်ညီသောအမှားများ မှထုတ်လုပ်သောအမှားများကိုကိုင်တွယ်ဖြေရှင်းရန်နှင့်ကိုက်ညီသည့်တိကျမှန်ကန်မှုကိုတိုးတက်စေရန်အတွက်အချို့သောဖြေရှင်းနည်းများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာ isionecolorresolveololve () function ကို၏အခြေခံအသုံးပြုမှုကိုကြည့်ကြပါစို့။ ဤလုပ်ဆောင်မှု၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
imagecolorresolve ( resource $image, int $red, int $green, int $blue ) : int
၎င်း၏ရည်ရွယ်ချက်မှာ RGB တန်ဖိုးနှင့်အနီးဆုံးအရောင်အညွှန်းကိန်းကိုရှာဖွေ။ ပြန်ပို့ရန်ဖြစ်သည်။
$ Image : Image image အရင်းအမြစ်။
$ အနီရောင် , $ အစိမ်းရောင် , $ အပြာ - ကိုက်ညီရန် RGB အရောင်တန်ဖိုး။
ဥပမာအားဖြင့်:
$image = imagecreatefrompng('image.png');
$index = imagecolorresolve($image, 255, 0, 0); // အနီးဆုံးအနီရောင်ကိုရှာပါ
ISESECOLORSOLVEL () အမှားများဖြစ်ပေါ်စေရသည့်အကြောင်းရင်းများစွာရှိသည်။
အရောင် palette ကန့်သတ်ချက်များ - ပုံရိပ်တွေက 256 အရောင် palette ကိုသုံးတယ်။
ပုံအရောင်အနက် - ရုပ်ပုံတစ်ခု၏အရောင်အတိမ်အနက်သည်ပုံရိပ်တွင်ရရှိနိုင်သည့်အရောင်များကိုသက်ရောက်သည်။ အကယ်. ပုံသည် 8 bits သို့မဟုတ်အောက်ပိုင်းရှိလျှင် isagecolorresolve () သည် အရောင်အသွေးပြတ်လပ်မှုအောက်တွင်ဖော်ပြထားသောအရောင်နှင့်ကိုက်ညီနိုင်ပါက,
အရောင်ခြားနားချက် - RGB အရောင်မော်ဒယ်တွင်အချို့သောအရောင်များတွင်ကွဲပြားခြားနားမှုများသည်သိမ်မွေ့စွာကွဲပြားမှုများရှိနိုင်သည် ။
အရောင်ကိုက်ညီသည့်အခါ Imagecolorresolveololve () ကြောင့် ဖြစ်ပေါ်လာသောအမှားများကိုလျှော့ချရန်နည်းလမ်းအနည်းငယ်သာရှိသည်။
အကယ်. ပုံသည်အရောင်အတိမ်အနက်ကို သုံး. (ဥပမာ 8-bit Image ကဲ့သို့) အရောင်အတိမ်အနက်ကိုသုံးပါကပုံ၏အရောင်အတိမ်အနက်ကို 24-bits (true color) သို့တိုးမြှင့်ပါ။ ၎င်းသည်အရောင်ကိုက်ညီမှု၏တိကျမှန်ကန်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
$image = imagecreatefrompng('image.png');
imagepalettetotruecolor($image); // စစ်မှန်သောအရောင်သို့ပြောင်းပါ
စစ်မှန်သောအရောင်သို့ကူးပြောင်းခြင်းအားဖြင့်ပုံပါ pixel တစ်ခုစီတွင်မတူညီသောအရောင်များကို 16,777,216 ခုရှိနိုင်သည်။
Imagecolorresolve () သည်အနီးဆုံးအရောင်ကိုတွက်ချက်ရန် algorithm နှင့်ကိုက်ညီသောရိုးရှင်းသောအရောင်ဖြစ်သည်။ အကယ်. ပိုမိုမြင့်မားသောတိကျသောကိုက်ညီမှုလိုအပ်ပါက RGB တန်ဖိုးများအကြားအကွာအဝေးကိုတွက်ချက်ရန် Euclidean အကွာအဝေး algorithm ကိုအသုံးပြုခြင်းကဲ့သို့သောအရောင်နှိုင်းယှဉ်မှု algorithm ကိုကိုယ်တိုင်ကိုယ်ကျအကောင်အထည်ဖော်နိုင်သည်။
ဤတွင် Euclidean အကွာအဝေးကို အသုံးပြု. အရောင်ကွဲပြားခြားနားမှုများကိုတွက်ချက်ခြင်းဥပမာတစ်ခုဖြစ်သည်။
function getColorIndex($image, $r, $g, $b) {
$width = imagesx($image);
$height = imagesy($image);
$minDistance = PHP_INT_MAX;
$bestColorIndex = -1;
for ($y = 0; $y < $height; $y++) {
for ($x = 0; $x < $width; $x++) {
$color = imagecolorat($image, $x, $y);
$red = ($color >> 16) & 0xFF;
$green = ($color >> 8) & 0xFF;
$blue = $color & 0xFF;
$distance = sqrt(pow($r - $red, 2) + pow($g - $green, 2) + pow($b - $blue, 2));
if ($distance < $minDistance) {
$minDistance = $distance;
$bestColorIndex = imagecolorat($image, $x, $y);
}
}
}
return $bestColorIndex;
}
ဤလုပ်ဆောင်ချက်သည်ပုံ၏ pixel တစ်ခုစီကိုဖြတ်သန်းသွားလိမ့်မည်။ ပစ်မှတ်အရောင်နှင့် pixel အရောင်အကြားရှိ Euclidean အကွာအဝေးကိုတွက်ချက်ပါလိမ့်မည်။
အကယ်. ပုံသည်အရည်အသွေးနိမ့်ကျပါကသို့မဟုတ်အကြီးအကျယ်ချုံ့သည်ဆိုပါကရုပ်ပုံအတွင်းရှိအရောင်အချက်အလက်များသည်ဆုံးရှုံးခဲ့ရသို့မဟုတ်ပုံပျက်ဖြစ်ခဲ့ပေမည်။ ယခုအချိန်တွင်အရည်အသွေးမြင့်မားသောပုံရိပ်အရင်းအမြစ်ကိုအသုံးပြုခြင်းသည်အမှားအယွင်းများကိုလျှော့ချလိမ့်မည်။
အချို့သောကိစ္စရပ်များတွင် isagecolorresolve () အလွန်နီးကပ်စွာအရောင်များကိုမရရှိပါကအချို့သောအရောင်များကိုကိုယ်တိုင်အစားထိုးနိုင်သည်။ များသောအားဖြင့်အချို့သောတိကျသောအရောင်အမှားများကိုသိရှိထားသည့်အခြေအနေများနှင့်သက်ဆိုင်သည်။
$image = imagecreatefrompng('image.png');
$index = imagecolorresolve($image, 255, 0, 0);
if ($index == -1) {
// အနီးဆုံးအနီရောင်ကိုရှာမတွေ့ပါက,ပုံမှန်အနီရောင်အစားထိုးကိုသုံးပါ
$index = imagecolorallocate($image, 255, 0, 0);
}
PHP ၏ built-in agrecolorresolve () ကို မကျေနပ်ပါက, ဤစာကြည့်တိုက်များတွင်အရောင်ကိုက်ညီသောပြ issues နာများကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်ရန်ပိုမိုတိကျသောပုံရိပ်ထုတ်ပေးကိရိယာများကိုပိုမိုတိကျသောပုံရိပ်များပြုပြင်ခြင်းကိရိယာများကိုပိုမိုတိကျသောပုံရိပ်များနှင့်ပိုမိုတိကျသောပုံရိပ်ကိုပြုပြင်ထုတ်လုပ်ရေးကိရိယာများကိုပိုမိုတိကျစေသည်။
အထူးသဖြင့်အရောင်အကွာအဝေးအကန့်အသတ်ရှိသည့်အခါ Image Color နှင့်ကိုက်ညီသည့်အခါ imagecolorresolveolve () လုပ်ဆောင်မှုသည်အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သည်။ ဤအမှားများကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည်ပုံ၏အရောင်အတိမ်အနက်ကိုပိုမိုတိုးမြှင့်နိုင်ရန်အတွက်ပိုမိုတိကျမှန်ကန်သောအရောင်နှိုင်းယှဉ် algorithm ကိုသုံးပါ, အရည်အသွေးမြင့်ရုပ်ပုံအရင်းအမြစ်ကိုသုံးပါ။ ထို့အပြင် ပိုမို. အစွမ်းထက်သောပုံရိပ်ထုတ်ခြင်းစာကြည့်တိုက်ကိုအသုံးပြုခြင်းသည်အလားအလာရှိသောဖြေရှင်းနည်းလည်းဖြစ်သည်။
ဤနည်းလမ်းများမှတစ်ဆင့်ကျွန်ုပ်တို့သည် isagecolorresolveololve () ၏တိကျမှန်ကန်မှုကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည် () သည် လက်တွေ့ကျသောအပလီကေးရှင်းများ၌ပိုမိုယုံကြည်စိတ်ချရသောအရောင်များကိုတိုးတက်စေနိုင်သည်။