လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အရောင်ပြောင်းလဲဆိုတော့စိတ်ကူးယဉ်အညွှန်းကိန်းပြ issues နာများကိုမည်သို့ကိုင်တွယ်ရမည်နည်း,

အရောင်ပြောင်းလဲဆိုတော့စိတ်ကူးယဉ်အညွှန်းကိန်းပြ issues နာများကိုမည်သို့ကိုင်တွယ်ရမည်နည်း,

M66 2025-06-15

Imagecolortransparent () PHP image processing လုပ်ဆောင်ချက်များကိုအထူးသဖြင့်ပွင့်လင်းမြင်သာသောရုပ်ပုံများကိုကိုင်တွယ်သောအခါ, ၎င်းသည်သတ်မှတ်ထားသောအရောင်ကိုပွင့်လင်းမြင်သာမှုရှိစေရန်ခွင့်ပြုရန်ခွင့်ပြုသည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များစွာသည်အထူးသဖြင့်ပုံ၏အရောင်နှင့်ပွင့်လင်းမြင်သာမှုကိုကိုင်တွယ်သောအခါအရောင်ညွှန်းကိန်းနှင့်ဆက်စပ်သောပြ problems နာများကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်အရောင်ညွှန်း ကိန်း ဆိုင်ရာပြ issues နာများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ imagecolortransparent () function ကိုမိတ်ဆက်

ပထမ ဦး စွာအနေဖြင့်၎င်းသည် စိတ်ကူးယဉ်ပုံသဏ္ဌာန် () function ၏အခြေခံအခန်းကဏ် ence ကိုနားလည်ရန်အရေးကြီးသည်။ ဒီ function ကိုပုံရိပ်အတွက်ပွင့်လင်းအရောင်အညွှန်းကိန်းကိုသတ်မှတ်ရန်အသုံးပြုသည်။

function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolortransparent</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$color</span></span><span> )
</span></span>
  • $ Image သည် များသောအားဖြင့် imagecreat နာရီ () သို့မဟုတ် imagecreatfressmmng () ဖြင့်ဖန်တီးသောပုံရိပ်အရင်းအမြစ်ဖြစ်သည်။

  • $ အရောင် သည်ပုံရိပ်ရှိအရောင်၏အညွှန်းကိန်းဖြစ်သည်။ ၎င်းကိုပွင့်လင်းမြင်သာမှုရှိလိမ့်မည်။

2 ။ အရောင် indexing ပြ problem နာ၏ root အကြောင်းရင်း

Images အထူးသဖြင့် GIF နှင့် PNG ရုပ်ပုံများကိုပြုပြင်သည့်အခါ PHP သည်ပုံရိပ်၏အရောင်ကိုသိုလှောင်ရန် palette ကိုအသုံးပြုသည်။ GIF ရုပ်ပုံများသည်အရောင် 256 ခုအထိထောက်ပံ့ပေးပြီး PNG ရုပ်ပုံများသည် palette ကိုသုံးနိုင်သည်သို့မဟုတ် RGB အရောင်များကိုတိုက်ရိုက်သိုလှောင်ထားနိုင်သည်။ ပုံတစ်ပုံသည် palette ကိုအသုံးပြုသောအခါအရောင်တစ်ခုစီကိုအညွှန်းတစ်ခုသတ်မှတ်ထားသည်။ အဆိုပါ imagecolortransparent () function ကိုဤအညွှန်းကိန်းတန်ဖိုးများကိုအသုံးပြုသည်။

ပုံ၏ palette ကိုမှန်ကန်စွာချိတ်ဆက်ထားခြင်းမရှိပါကပြ The နာသည်မှန်ကန်စွာခွဲခြားထားသည့်အခါသို့မဟုတ်သတ်မှတ်ထားသောပွင့်လင်းမြင်သာသောအရောင်သည် palette တွင်မတည်ရှိပါ။ ဤအချိန်တွင်ထိုအချိန်တွင်၎င်းသည်မလိုအပ်သောနောက်ခံအရောင်တစ်ခုရှိသလိုပွင့်လင်းမြင်သာသောအကျိုးသက်ရောက်မှုကိုမှန်ကန်စွာ အသုံးချ. မရပါ။

3 ။ အရောင်ညွှန်းကိန်းကိုမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းနည်း

အရောင်ဖျော့ဖျော့ပြ problems နာများကိုရှောင်ရှားရန်ပုံရိပ်၏အရောင်အညွှန်းကိန်းမှန်ကန်မှုရှိစေရန်သင်ပထမ ဦး ဆုံးလိုအပ်သည်။ ဤတွင်အချို့သောအသုံးများသော processing အဆင့်များရှိပါသည်။

3.1 အရောင်အညွှန်းကိုရယူပါ

isionecolorat () function ကိုမှတစ်ဆင့် RGB တန်ဖိုးများအပါအ 0 င်အချို့သောနေရာတွင်အရောင်အချက်အလက်များကိုရနိုင်သည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$rgb</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorat</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// ပုံ၏ဘယ်ဘက်အပေါ်ထောင့်ရှိ pixel ၏အရောင်ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$red</span></span><span> = (</span><span><span class="hljs-variable">$rgb</span></span><span> &gt;&gt; </span><span><span class="hljs-number">16</span></span><span>) &amp; </span><span><span class="hljs-number">0xFF</span></span><span>;
</span><span><span class="hljs-variable">$green</span></span><span> = (</span><span><span class="hljs-variable">$rgb</span></span><span> &gt;&gt; </span><span><span class="hljs-number">8</span></span><span>) &amp; </span><span><span class="hljs-number">0xFF</span></span><span>;
</span><span><span class="hljs-variable">$blue</span></span><span> = </span><span><span class="hljs-variable">$rgb</span></span><span> &amp; </span><span><span class="hljs-number">0xFF</span></span><span>;
</span></span>

RGB တန်ဖိုးကိုသင်ရရှိသောအခါအနီးဆုံး palette အရောင်အညွှန်းကိန်းကိုရှာဖွေရန် စိတ်ကူးယဉ် () သို့မဟုတ် imagecolorallate () functions များကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$color</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>, </span><span><span class="hljs-variable">$green</span></span><span>, </span><span><span class="hljs-variable">$blue</span></span><span>);
</span></span>

3.2 Palette ၏ပွင့်လင်းအရောင်များကိုကိုင်တွယ်ပါ

အကယ်. ပုံတွင်ကိုယ်နှိုက်ကသင့်လျော်သောပွင့်လင်းမြင်သာသောအရောင်မရှိပါကသင် palette သို့ပွင့်လင်းမြင်သာသောအရောင်ကိုကိုယ်တိုင်ထည့်ရန်လိုအပ်နိုင်သည်။ ဥပမာ - ပွင့်လင်းမြင်သာမှုနှင့်အရောင်ဖန်တီးရန် imagecolorallochoce () function ကိုသုံးနိုင်သည်။

 <span><span><span class="hljs-variable">$transparentColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocatealpha</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">127</span></span><span>); </span><span><span class="hljs-comment">// Translucent အဖြူရောင်</span></span><span>
</span></span>

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

 <span><span><span class="hljs-title function_ invoke__">imagecolortransparent</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$transparentColor</span></span><span>);
</span></span>

3.3 ပွင့်လင်းမြင်သာသောအရောင်သည်ထိရောက်ကြောင်းသေချာပါစေ

သင် စိတ်ကူးယဉ်ထားသော အရောင်အညွှန်းကိန်းတစ်ခုအတွက်မှန်ကန်သောအရောင်ညွှန်းကိန်းတစ်ခုပေးရန်သေချာစေပါ။ အကယ်. ပုံသည် palette ကိုအသုံးပြုနေပါကပွင့်လင်းမြင်သာသောအရောင်၏အရောင်အညွှန်းကိန်းသည်ပုံ၏ palette တွင်ဖြစ်သင့်သည်။ အကယ်. ပုံတွင်ပွင့်လင်းမြင်သာသောလမ်းကြောင်းများပါ 0 င်ပါကပွင့်လင်းမြင်သာသောလမ်းကြောင်းများပါ 0 င်ပါကပွင့်လင်းမြင်သာသောလမ်းကြောင်းများကိုအခြားအရောင်များဖြင့်မဖုံးကွယ်နိုင်ကြောင်းသေချာစေသင့်သည်။

3.4 သင့်လျော်သောပုံအမျိုးအစားကိုအသုံးပြုခြင်း

ဖြစ်နိုင်လျှင် Transparency ကိုထောက်ပံ့သော image formats (ဥပမာ PNG ကဲ့သို့) ကိုသုံးပါ။ GIF ပုံရိပ်များကိုပွင့်လင်းမြင်သာသောပံ့ပိုးမှုသည်အတော်အတန်အကန့်အသတ်ရှိသည်။ အကယ်. သင်သည် GIF Image ကိုအသုံးပြုရပါက၎င်း၏ palette ကိုအထူးသဖြင့်ပွင့်လင်းမြင်သာသောအရောင်အညွှန်းများနှင့်မှန်ကန်စွာ configure လုပ်ပါ။

4 ။ နမူနာကုဒ်

ဤနေရာတွင်ပုံရိပ်တစ်ခုအတွက်ပွင့်လင်းမြင်သာသောအရောင်များကိုမည်သို့သတ်မှတ်ရမည်ကိုပြသသည့်အပြည့်အဝနမူနာကုဒ်ဖြစ်သည်။

 <span><span><span class="hljs-comment">// ပုံကိုတင်ခြင်း</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'example.png'</span></span><span>);

</span><span><span class="hljs-comment">// ပုံ၏အရောင်အညွှန်းကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$rgb</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorat</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-variable">$red</span></span><span> = (</span><span><span class="hljs-variable">$rgb</span></span><span> &gt;&gt; </span><span><span class="hljs-number">16</span></span><span>) &amp; </span><span><span class="hljs-number">0xFF</span></span><span>;
</span><span><span class="hljs-variable">$green</span></span><span> = (</span><span><span class="hljs-variable">$rgb</span></span><span> &gt;&gt; </span><span><span class="hljs-number">8</span></span><span>) &amp; </span><span><span class="hljs-number">0xFF</span></span><span>;
</span><span><span class="hljs-variable">$blue</span></span><span> = </span><span><span class="hljs-variable">$rgb</span></span><span> &amp; </span><span><span class="hljs-number">0xFF</span></span><span>;

</span><span><span class="hljs-comment">// အနီးဆုံးအရောင်အညွှန်းကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$transparentColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorclosest</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$red</span></span><span>, </span><span><span class="hljs-variable">$green</span></span><span>, </span><span><span class="hljs-variable">$blue</span></span><span>);

</span><span><span class="hljs-comment">// ပွင့်လင်းအရောင် set</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecolortransparent</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$transparentColor</span></span><span>);

</span><span><span class="hljs-comment">// output ကိုပုံ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span></span>

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

isaultecolortransparent () function ကိုအသုံးပြုသောအခါအရောင်အညွှန်းကိန်း၏မှန်ကန်မှုကိုသေချာစေရန်ပြ the နာကိုဖြေရှင်းရန်သော့ချက်ဖြစ်သည်။ အရောင်များအညွှန်းများကိုစနစ်တကျ 0 င်ရောက်ခြင်း, isagecolorclowest () function ကို အသုံးပြု. ပွင့်လင်းမြင်သာသောအရောင်များကိုမှန်ကန်သော configuration ကိုသေချာစွာရယူခြင်းဖြင့်ပုံရိပ်၏ပွင့်လင်းမြင်သာမှုကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်နိုင်သည်။ ထို့အပြင်သင့်လျော်သောပုံရိပ်ပုံစံ (ဥပမာ - PNG ကဲ့သို့သော partette configuration ကိုရွေးချယ်ခြင်းသည်ပွင့်လင်းမြင်သာမှုအပြောင်းအလဲအတွက်ထိရောက်မှုနှင့်တိကျမှန်ကန်မှုကိုတိုးတက်စေရန်ကူညီလိမ့်မည်။