လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> GD ပုံရိပ်များနှင့် isagecolorresolveoll ၏အရောင် palette အကြားနောက်ခံအပြန်အလှန်ဆက်သွယ်မှု ()

GD ပုံရိပ်များနှင့် isagecolorresolveoll ၏အရောင် palette အကြားနောက်ခံအပြန်အလှန်ဆက်သွယ်မှု ()

M66 2025-06-04

PHP ၏ GD စာကြည့်တိုက်ကို အသုံးပြု. ရုပ်ပုံများကိုလုပ်ဆောင်သည့်အခါ imagecolorresolve () သည်အလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏ရည်ရွယ်ချက်မှာအရောင်အညွှန်းကိန်းကို image palette တွင်အရောင်အသွေးနှင့်အနီးဆုံးအရောင်ကိုရှာဖွေရန်သို့မဟုတ်မတွေ့ရှိပါကအရောင်အသစ်တစ်ခုကိုထည့်ပါ။ ၎င်းသည်အရောင်များကိုအကန့်အသတ်ဖြင့်သာအရောင်များဖြင့်ပြုလုပ်ရန်လိုသောမြင်ကွင်းများအတွက်အလွန်အသုံးဝင်သည်။

ဒါဆို imageecolorresolve () ကို အောက်ခြေရှိပုံ palette နှင့်မည်သို့ဆက်သွယ်ပါသနည်း။ ဒါကိုဒီမှာနက်နက်နဲရှို့စွာဆွေးနွေးကြပါစို့။

1 ။ အရောင် palette အခြေခံ

GD တွင်သင်သည် palette image တစ်ခု ဖန်တီးပါက (များသောအားဖြင့် imagecreatetuecolor အစား ( )) အစား image ကို isonecreate ( ) ဖြင့်ဖန်တီးထားသော), ထို့နောက်ပုံသည် အရောင်တင်ခြင်းကို ထိန်းသိမ်းထားသည်။ ဒီအရောင်စားပွဲပေါ်မှာအရောင် 256 အထိပါဝင်နိုင်တဲ့ခင်းကျင်းမှုတစ်ခုပါ။

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

 $img = imagecreate(100, 100);
$red = imagecolorallocate($img, 255, 0, 0); // ညွှန်ပြသောအရာ 0
$green = imagecolorallocate($img, 0, 255, 0); // ညွှန်ပြသောအရာ 1
$blue = imagecolorallocate($img, 0, 0, 255); // ညွှန်ပြသောအရာ 2

အကယ်. palette သည်အပြည့်အဝ (အရောင် 256) ရှိလျှင်, သင်လက်ရှိအရောင်များကို ပြန်လည်သုံးသပ် ရမည်ဖြစ်သည်,

2 ။ ISESECOSORRESOLVEL () လုပ်ငန်းစဉ်၏ခြုံငုံသုံးသပ်ချက်

ISESECOSORRESOLELESOULE ကိုခေါ်တဲ့အခါ ($ image, $ R, $ g, $ ခ) လို့ခေါ်တဲ့အခါနောက်ခံအလွှာကအောက်ပါအဆင့်တွေကိုတကယ်ဖြတ်သန်းသွားတယ်။

  1. ရှိပြီးသားအရောင် palette scan <br> <br> palette ၏အရောင်တစ်ခုစီကိုတစ် ဦး ချင်းစီမှတစ်ဆင့်ကြားသိရပြီး၎င်းသည် "အကွာအဝေး" နှင့်ပစ်မှတ်ထားသောအရောင် (များသောအားဖြင့် RGB အာကာသ၏ Euclidean အကွာအဝေး, i.e ။
    ( r 1 ? r 2 ) 2 + ( g 1 ? g 2 ) 2 + ( b 1 ? b 2 ) 2 (r1 - r2)^2 + (g1 - g2)^2 + (b1 - b2)^2 ) ။

  2. အနီးဆုံးအရောင်ရှာပါ စကင်ဖတ်စစ်ဆေးမှုလုပ်ငန်းစဉ်အတွင်းလက်ရှိတွေ့ရှိသောအနည်းဆုံးအကွာအဝေးနှင့်သက်ဆိုင်ရာအရောင်အညွှန်းကိန်းများကိုအမြဲတမ်းမှတ်တမ်းတင်ထားသည်။

  3. ပြန်လာသို့မဟုတ်အရောင်ထည့်ပါ

    • ကိုက်ညီသည့်အရောင်အတိအကျကိုတွေ့လျှင် (i.e. အကွာအဝေးသည် 0) တွေ့လျှင်သက်ဆိုင်ရာအညွှန်းကိန်းကိုတိုက်ရိုက်ပြန်ပို့သည်။

    • ပွဲစဉ်အတိအကျမရှိပါက, palette သည်အရောင် 256 ခုထက်နည်းသည်, ဤအရောင်သစ်ကို palette သို့ထည့်ပြီးအရောင်အသစ်ကိုပြန်ပို့ပါ။

    • အကယ်. palette အပြည့်အဝရှိပါကအရောင်နှင့်အနီးဆုံးအညွှန်းကိန်းသာပြန်လာသည်။

ဤအချက်သည်သင်နှင့်ကိုက်ညီသောအရောင်များကို palette image အတွင်းရှိသတ်မှတ်ထားသောအရောင်များကို palette ၏ကန့်သတ်ချက်များမချိုးဖောက်ဘဲတတ်နိုင်သမျှကိုက်ညီစေနိုင်သည်။

3 ။ အမှန်တကယ်ကုဒ်နမူနာများ

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

 <?php
// a 100x100 palette ပုံရိပ်တွေ
$image = imagecreate(100, 100);

// Deferendo Base White နောက်ခံ
$background = imagecolorallocate($image, 255, 255, 255);

// ၎င်းကိုအထူးအရောင်ဖြင့်ဖြည့်လိုသည်
$desired_r = 120;
$desired_g = 180;
$desired_b = 90;

// အနီးဆုံးအရောင်ကိုရှာပါသို့မဟုတ်အရောင်အသစ်တစ်ခုထည့်ပါ
$color = imagecolorresolve($image, $desired_r, $desired_g, $desired_b);

// တွေ့ရှိရသောအရောင်နှင့်အတူ area ရိယာဖြည့်ပါ
imagefilledrectangle($image, 10, 10, 90, 90, $color);

// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);

// အရင်းအမြစ်များကိုအခမဲ့
imagedestroy($image);
?>

url ကိုအထက်ပုံရိပ်ကိုထုတ်လုပ်ရန် URL ကိုပေးလိုပါက Express URL သည် -

 https://m66.net/generate_icon.php

Generate_iconon.php ဘယ်မှာလဲ။

4 ။ ဖြည့်စွက်: Palette ပုံရိပ်တွေနှင့်စစ်မှန်သောအရောင်ပုံရိပ်တွေအကြားခြားနားချက်

သတိပြုသင့်သည်မှာ isagecolorresolve () ကို palette ရုပ်ပုံများ အတွက်သာအသုံးပြုနိုင်သည်။ အကယ်. သင်သည် ISESECREATETRUECOUROUCORE () ပုံရိပ်တစ်ခုဖန်တီးနေပါက GD စာကြည့်တိုက်သည် အရောင် palette ကိုမသုံးပါ။ အရောင်များကို pixel ဖြင့်တိုက်ရိုက်သိမ်းဆည်းထားသည်။ ဤကိစ္စတွင်အညွှန်းကိန်းများကိုရှာဖွေမည့်အစား RGB တန်ဖိုးများကိုတိုက်ရိုက်အသုံးပြုသင့်သည်။

အကယ်. သင်သည် ISESECOSORRESOLELOLOSOLOSOLELOLOLOLESOLE () ကို သုံးလိုပါက PHP သည်များသောအားဖြင့် palette မြေပုံကိုပုံမှန်အားဖြင့်ယာယီမြေပုံကိုဖန်တီးလိမ့်မည်။ ထို့ကြောင့်မတတ်နိုင်သောကြောင့်မထောက်ခံပါ။

5 ။ အကျဉ်းချုပ်

  • Imagecolorresolve () သည်အရင်းနှီးဆုံးအညွှန်းကိန်းကို အကန့်အသတ် ဖြင့်မိတ္တူကူးထားသည့်အရောင်ကိုရှာဖွေရန်ဖြစ်သည်။

  • အောက်ခြေအလွှာသည်အရောင်ကွဲပြားမှုကိုတွက်ချက်ရန် palette ကိုစကင်ဖတ်စစ်ဆေးသည်။

  • အရောင် palette တွင်အများဆုံးအရောင် 256 ခုရှိပြီး၎င်းကိုကျော်လွန်ပြီးမှသာခန့်မှန်းနိုင်သည်။

  • ဤနည်းလမ်းသည်စစ်မှန်သောအရောင်ပုံရိပ်များနှင့်မသက်ဆိုင်ပါ

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