လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ImageGIF () function သည် Alpha Transparency ကိုမထောက်ပံ့ပါသနည်း။ ဒါကမဆိုနည်းပညာပိုင်းဆိုင်ရာကန့်သတ်ထားပါသလား

ImageGIF () function သည် Alpha Transparency ကိုမထောက်ပံ့ပါသနည်း။ ဒါကမဆိုနည်းပညာပိုင်းဆိုင်ရာကန့်သတ်ထားပါသလား

gitbox 2025-08-23

ImageGIF () function သည် Alpha Transparency ကိုမထောက်ပံ့ပါသနည်း။ ဒါကမဆိုနည်းပညာပိုင်းဆိုင်ရာကန့်သတ်ထားပါသလား

PHP တွင် Idegif () တွင် ရုပ်ပုံများကို GIF format ဖြင့်သိမ်းဆည်းရန်အသုံးများသော function တစ်ခုဖြစ်သည်။ သို့သော် GIF format သည်ပွင့်လင်းမြင်သာမှုပုံစံအချို့ကိုအထောက်အကူပြုသော်လည်း IdentGIF () function သည် alpha transparency-function ကိုအပြည့်အဝမထောက်ပံ့ပါ။

1 ။ GIF ပုံစံ၏ပွင့်လင်းမြင်သာမှုယန္တရား

ပထမဆုံးအကြိမ်သိရခြင်းသည် GIF ပုံစံများနှင့်အခြားပုံစံများ (PNG, JPEG) သည်ပွင့်လင်းမြင်သာမှုကိုကိုင်တွယ်ရာတွင်အလွန်ကွဲပြားခြားနားသည်။ GIF အမျိုးအစား၏ပွင့်လင်းမြင်သာမှုသည် Pixel ၏ "alpha channel" ပေါ်တွင်မမူတည်သော်လည်းပုံရိပ်နှင့်သက်ဆိုင်သောအရောင်အသွေးကိုဖော်ပြခြင်းဖြင့်အောင်မြင်သည်။ ဆိုလိုသည်မှာ GIF ရုပ်ပုံများသည်တစ်စိတ်တစ်ပိုင်းပွင့်လင်းမြင်သာမှု (သို့) gradient transparency ကိုထောက်ပံ့ခြင်းမရှိဘဲလုံးဝပွင့်လင်းမြင်သာသောအရောင်တစ်ခုသာရှိသည်။

GIF ၏ပွင့်လင်းမြင်သာမှုသည်အောက်ပါအတိုင်းဖြစ်သည် -

  • ပုံ၏ pixel တစ်ခုချင်းစီတွင်အရောင်ခြယ်ထားသောအရောင်အညွှန်းတစ်ခုရှိသည်။

  • GIF Image တစ်ခုကိုဖန်တီးသောအခါအရောင်ကို "ပွင့်လင်းမြင်သာ" အဖြစ်သတ်မှတ်နိုင်သည်။

  • အခြားအရောင်များအားလုံးသည် opaque နှင့်တူသောပုံရိပ်တွင် gradient ကိုပွင့်လင်းမြင်သာသောအကျိုးသက်ရောက်မှုကိုမတင်ပြနိုင်ပါ။

၎င်းသည်ပြ a နာတစ်ခုဖြစ်စေသည်။ PHP ၏ impp ၏ impp ၏ impp ကို () function မှတဆင့်ပုံရိပ်ကိုသိမ်းဆည်းထားသည့်အခါ part တစ်ခုစီ၏ပွင့်လင်းမြင်သာမှုတန်ဖိုးများကိုသာကိုင်တွယ်နိုင်သည်။

2 ။ ImageGIF () function ကိုဘယ်လိုအလုပ်လုပ်သလဲ

IDECTGIF () function သည် palette-based image ကိုလည်ပတ်နေသည်။ GIF format ရှိပုံရိပ်များသည် palette-based ဖြစ်ပြီးအရောင်အညွှန်းကိန်းနှင့်သက်ဆိုင်သော pixel တစ်ခုစီနှင့် palette ရှိအရောင်များဖြင့်အရောင်များကိုသာအရောင် 256 အထိထောက်ပံ့နိုင်သည်။ ၎င်းသည် pixel တစ်ခုစီအတွက်အချို့သောအရောင်တစ်ခုဖြစ်ရန်ဖြစ်နိုင်ချေရှိသောအရောင်များကို part format ဖြင့် PNG format ဖြင့်မထိန်းချုပ်နိုင်ပါ။

IDECHGIF () မှပုံတစ်ပုံကိုသိမ်းဆည်းသောအခါ PHP သည်သတ်မှတ်ထားသောပွင့်လင်းမြင်သာသောအရောင်ပေါ်တွင်အခြေခံသည်။ ပုံတွင် gradients များသို့မဟုတ်ကွဲပြားခြားနားသောပွင့်လင်းမြင်သာမှုအဆင့်ဆင့်ရှိလျှင်, impendigif () သည် ဤအချက်အလက်ကိုမှန်ကန်စွာသိမ်းဆည်းလိမ့်မည်မဟုတ်ပါ။ ၎င်းသည်ကွဲပြားခြားနားသောပွင့်လင်းမြင်သာမှု pixels အားလုံးကို fixed transparency pixels ကိုပြောင်းလဲထားသောပွင့်လင်းမြင်သာသောအရောင်အဖြစ်ပြောင်းလဲပေးသည်။

3 ။ GIF နှင့် alpha လိုင်းများ၏ကန့်သတ်ချက်များ

GIF ၏ပွင့်လင်းမြင်သာမှုသည် "အပြည့်အဝပွင့်လင်းမြင်သာ" သို့မဟုတ် "အပြည့်အဝ opaque" ဖြစ်နိုင်သည်။ ဥပမာ PNG format သည် pixel တစ်ခုစီအတွက် pixel တစ်ခုစီအတွက် (0 မှ 255) ကွဲပြားခြားနားသောပွင့်လင်းမြင်သာမှုအဆင့်ကိုပြောင်းလဲနိုင်သည်

ImageGif () သည် ဤ "monochrome transparency" ယန္တရားကိုသာထောက်ပံ့သည်။ ဤနည်းပညာဆိုင်ရာကန့်သတ်ချက်သည် GIF format ၏ဒီဇိုင်းနှင့်သက်ဆိုင်သည်

4 ။ Solution: PNG format ကိုသုံးပါ

alpha transparency ပါ 0 င်သောပုံများနှင့်သင်အလုပ်လုပ်ရန်လိုအပ်ပါက PNG သည် pixel တစ်ခုစီ၏ပွင့်လင်းမြင်သာမှုကိုတိကျသောထိန်းချုပ်မှုကိုခွင့်ပြုထားသောကြောင့်ဖြစ်သည်။

PHP တွင်သင်သည် alpha transparency ကိုထောက်ပံ့သော PNG ရုပ်ပုံများကိုသိမ်းဆည်းရန် empng () function ကိုသုံးနိုင်သည်။ ImagePng () သည် ကယ်တင်ခြင်းသို့ရောက်သောအခါ Transparency အထောက်အပံ့ကိုဖွင့်ပေးပြီးအရောင်အညွှန်းကိန်းပြောင်းလဲခြင်းမရှိဘဲပုံ၏မူလပွင့်လင်းမြင်သာမှုကိုထိန်းသိမ်းထားနိုင်သည်။

ဥပမာအားဖြင့်, imagepng () ကို ပွင့်လင်းမြင်သာမှုနှင့်အတူသိမ်းဆည်းရန်:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</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__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);

</span><span><span class="hljs-comment">// ပွင့်လင်းမြင်သာမှုကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-variable">$transparent</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">0</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-number">127</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagefill</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">$transparent</span></span><span>);

</span><span><span class="hljs-comment">// အကြောင်းအရာတစ်ခုပေါ်တွင်အကြောင်းအရာဆွဲပါ</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-string">'output.png'</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><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင် ImagesAvealpha () function ကို function သည် alpha channel support ကိုဖွင့်ပေးပြီး EmagecolorallocAlealpha () ကို အသုံးပြု. လုံးဝပွင့်လင်းမြင်သာသောနောက်ခံကိုဖန်တီးပေးသည်။

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

ImpactGIF () alpha ပွင့်လင်းမြင်သာမှုကိုမထောက်ပံ့နိုင်သည့်အကြောင်းရင်းမှာ GIF format ၏ဒီဇိုင်းသည်အကန့်အသတ်ရှိသောကြောင့် alpha transparency ကိုမထောက်ပံ့နိုင်ပါ။ GIF သည် MonoFromatic Transparency, i.e. ကိုပွင့်လင်းမြင်သာသောအရောင်အဖြစ်အသုံးပြုသည်။ အကယ်. သင်သည် gradient transparency သို့မဟုတ်တစ်စိတ်တစ်ပိုင်းပွင့်လင်းမြင်သာမှုရှိရန်ပုံများကိုလိုအပ်ပါက PNG Format ကိုသုံးရန်နှင့်အရည်အသွေးမြင့်ပွင့်လင်းမြင်သာမှုအထောက်အပံ့များအတွက်ပုံကိုသိမ်းဆည်းရန် Impress () function ကိုသုံးရန်အကြံပြုသည်။