လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Imagecolorresolve () 24-bit နှင့် 8-bit ပုံများအတွက်အပြုအမူခြားနားချက်

Imagecolorresolve () 24-bit နှင့် 8-bit ပုံများအတွက်အပြုအမူခြားနားချက်

M66 2025-05-29

Image Phil အတွက် PHP ကိုအသုံးပြုသောအခါ isionecolorresolve () function ကိုမကြာခဏ palette ပုံရိပ်များဖြစ်စဉ်များတွင်မကြာခဏပေါ်လာပါသည်။ သို့သော် developer များစွာသည်ဤလုပ်ဆောင်ချက်ကိုအသုံးပြုသောအခါသူတို့ကမကြာခဏဆိုသလိုတွေးမိသည် - ** 24-bit (TrueColor) ပုံများနှင့် 8-bit (palette) ရုပ်ပုံများနှင့် 8-bit (palette) ရုပ်ပုံများနှင့် 8-bit (palette) ပုံများဖြင့်သူတို့၏အပြုအမူနှင့် ပတ်သက်. မည်သို့ကွာခြားသနည်း။ ** ယနေ့ကျွန်ုပ်တို့သည်ဤပြ issue နာအကြောင်းအတိမ်အနက်ဖြင့်ပြောဆိုပါလိမ့်မည်။

ISESECOSORRESOLVECE () ?

ပထမ ဦး စွာ isagecolorresolve () မိတ်ဆက်ပေးကြပါစို့။ ဤလုပ်ဆောင်ချက်၏လုပ်ဆောင်ချက်မှာ -
သတ်မှတ်ထားသောအရောင်သည် palette image တွင်ရှိပြီးသားဆိုလျှင်ရှာဖွေပါ။ တည်ရှိပါကအရောင်အညွှန်းကိုပြန်ပို့ပါ။ အကယ်. ၎င်းသည်မရှိပါကဤအရောင်ကို palette သို့ထည့်သွင်းရန်နှင့်အညွှန်းကိန်းအသစ်ကိုပြန်ပို့သည်။

အခြေခံအသုံးပြုမှုဥပမာများ -

 <?php
// ပုံတစ်ပုံဖန်တီးပါ 8 Bit Palette ပုံရိပ်
$image = imagecreate(100, 100);

// အနီရောင်အဓိပ္ပာယ်
$red = imagecolorresolve($image, 255, 0, 0);

// ဒီအရောင်နှင့်စတုဂံဆွဲပါ
imagefilledrectangle($image, 10, 10, 90, 90, $red);

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

// အရင်းအမြစ်များကိုဖျက်ဆီးသည်
imagedestroy($image);
?>

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

ပုံတစ်ပုံတွင် 24-bit (trueecolor) အပြုအမူ

24-bit truecolor ပုံရိပ်ကို imagecreatetuecolor () ဖြင့် () နှင့်အတူ 24-bit trueecolor ပုံရိပ်ကိုဖန်တီးသောအခါ, image ကိုယ်နှိုက်က palette မရှိကြပါ ။ Pixel တစ်ခုစီသည် RGB အရောင်တန်ဖိုးများကိုလွတ်လပ်စွာသိုလှောင်နိုင်သည်။

ဒါကြောင့်မေးခွန်းကတော့ isaecolorresolvve () ကို TrueColor Image ကိုခေါ်ရင်ဘာဖြစ်မလဲ။

အဖြေမှာ -
ISESECOSORRESOLVESOSOLESOULE () ကိုသင်ခေါ်ဆိုလျှင်ပင် PHP သည်အရောင်အညွှန်းများကိုအမှန်တကယ်မဖွင့်ပါ, သို့သော် RGB တန်ဖိုးများမှတွက်ချက်သည်။

ဥပမာအားဖြင့်:

 <?php
// ပုံတစ်ပုံဖန်တီးပါ 24 မြင်းဇက်ကြိုး TrueColor အရုပ်
$image = imagecreatetruecolor(100, 100);

// အပြာရောင်သတ်မှတ်ပါ
$blue = imagecolorresolve($image, 0, 0, 255);

// ဒီအရောင်နှင့်စတုဂံဆွဲပါ
imagefilledrectangle($image, 10, 10, 90, 90, $blue);

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

imagedestroy($image);
?>

ဤတွင် $ အပြာ ( 255 ) သည်အရောင်ညွှန်းကိန်းမဟုတ်ဘဲကိန်းဂဏန်းများဖြစ်သည်။ ဤ mode တွင် pixel တစ်ခုချင်းစီကိုအပြည့်အဝ RGB အချက်အလက်များကိုသီးခြားသိမ်းဆည်းထားသည့်အတိုင်းအရောင်တည်ရှိမှုကိုသင်စိတ်ပူစရာမလိုပါ။

ရုပ်ပုံများတွင် 8-bit (အရောင် palette) အပြုအမူ

8-bit Image ( Imagecreate () မှဖန်တီးသည်) တွင် ပုံရိပ်၏အရောင်များကိုအကန့်အသတ်ဖြင့်သာအကန့်အသတ်ရှိသည်။

ထို့ကြောင့် ISESECOSORRESOLVELEL () ဟုခေါ်သောအခါ PHP သည် -

  1. သတ်မှတ်ထားသောအရောင်ရှိပြီးသားရှိမရှိကြည့်ရှုရန်အရောင်တောက်ပသော palette မှတဆင့်ကြားဖြတ်။

  2. ပစ္စုပ္ပန်လျှင်၎င်း၏အညွှန်းကိုပြန်ပို့ပါ။

  3. ပစ္စုပ္ပန်မတင်ပြလျှင် (အာကာသလုံလောက်လျှင်) palette ထဲသို့ထည့်ပါ။

  4. palette အပြည့်အဝလျှင်, သတ်မှတ်ထားသောအရောင်နှင့်အနီးဆုံးအရောင်အရောင်၏အညွှန်းကိန်းကိုပြန်သွားပါ။

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

ဥပမာ -

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

// palette ကန့်သတ်ထက်ကျော်လွန်သောအရောင်များထည့်သွင်းကြိုးစားပါ
for ($i = 0; $i < 300; $i++) {
    $color = imagecolorresolve($image, rand(0,255), rand(0,255), rand(0,255));
}

// ပုံတစ်ပုံကိုထုတ်လုပ်ပါ,ကြည့်ရှုရန်
header('Content-Type: image/png');
imagepng($image);

// အရင်းအမြစ်ဖြန့်ချိမှု
imagedestroy($image);
?>

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

အကျဉ်းချုပ်

ပုံအမျိုးအစား imagecolorresolve () အပြုအမူဖော်ပြချက်
24-bit truecolor တစ် palette အသုံးမပြုဘဲအရောင်တန်ဖိုး (int) ကိုပြန်ပို့သည်
8-bit အရောင် palette image အရောင် 256 ကန့်သတ်ထားသောအရောင်အညွှန်းများကိုရှာပါသို့မဟုတ်ထည့်ပါ

ထို့ကြောင့်အကျဉ်းချုပ်ရန် -

  • 24-bit Imagesolveolsolvve () isagecolorresolve () သည်မလိုအပ်ပါ။ သင်ကိုယ်တိုင် ကိုတိုက်ရိုက်သို့မဟုတ်အရောင်တည်ဆောက်ခြင်းကိုသင်ကိုယ်တိုင်သုံးနိုင်သည်။

  • 8-bit ပုံများတွင်အထူးသဖြင့်ပုံရိပ်အရောင်နံပါတ်နှင့်ဖြန့်ဖြူးမှုကိုသင်ထိန်းချုပ်ရန်လိုအပ်သည့်အခါအလွန်အရေးကြီးသည်။

အကြံပေးချက်များ

8-bit ပုံရိပ်တွေကိုထုတ်လုပ်တဲ့အခါအရောင်ချို့တဲ့မှုကိုသင်မကြာခဏကြုံတွေ့ရပါက ImageCreatetRuecolor () ကို မထုတ်လုပ်မီဖုန်းခေါ်ဆိုခြင်း () ကိုမထုတ်လုပ်မီ calling image ကိုပြောင်းရန်စဉ်းစားနိုင်သည်။ PHP သည်အလိုအလျောက်အရောင်ကိုအကောင်းဆုံးဖြစ်စေလိမ့်မည်။

နမူနာကုဒ်ကိုးကားချက်: