လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဘယ်ကြောင့် agiceantialias () PNG ပုံရိပ်တွေအပေါ်အကျိုးသက်ရောက်မှုမရှိပါ?

အဘယ်ကြောင့် agiceantialias () PNG ပုံရိပ်တွေအပေါ်အကျိုးသက်ရောက်မှုမရှိပါ?

M66 2025-05-29

PHP ၏ GD Image Processing Library စာကြည့်တိုက်ကိုအသုံးပြုသောအခါ, ImageanTias () function ကိုအသုံးပြုလေ့ရှိသည်။ အထူးသဖြင့်လိုင်းများ, သို့သော် developer များစွာသည် ImpeanTialias () သည် PNG Format ပုံရိပ်များကိုထုတ်လုပ်သည့်အခါသိသာသောသက်ရောက်မှုကိုဖြစ်ပေါ်စေသည်မဟုတ်ကြောင်းတွေ့ရှိလိမ့်မည်။ ဘာကြောင့်ဒီလိုဖြစ်ရတာလဲ ဤဆောင်းပါးသည်နောက်ကွယ်ရှိအကြောင်းရင်းများကိုနားလည်ရန်သင့်အားယူပါလိမ့်မည်။

1 ။ ImageanTiasias () function ကို၏ function ကိုနှင့်နိယာမ

ပုံသဏ္ဌာန် antialiasing ကို enable သို့မဟုတ် disable လုပ်ရန် ImageanTialias () function ကိုအသုံးပြုသည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 imageantialias($image, true);

စစ်မှန်တဲ့ နေရာမှာ GD စာကြည့်တိုက်ဟာပုံရိပ်တွေဆွဲတဲ့အခါပုံဆွဲတဲ့အခါဂရပ်ဖစ်အနားတွေရဲ့အနားစွန်းတွေကိုချောမွေ့စေဖို့ alizing algorithms ကိုသုံးဖို့ကြိုးစားတယ်။ သို့သော်ဤ anti-aliasing အကျိုးသက်ရောက်မှုသည်အဓိကအားဖြင့် ပုံဆွဲစစ်ဆင်ရေးတွင် အဓိကအားဖြင့်ထင်ဟပ်ကြောင်းမှတ်ချက်ပြုသင့်သည်။

ဆိုလိုသည်မှာ GD (ဥပမာ, Imageline () , ImagePolygon () စသဖြင့်) GD မှတဆင့်ရေးဆွဲထားသော element များအပေါ်သက်ရောက်မှုများကိုသာသက်ရောက်သည်။

2 ။ PNG ပုံရိပ်ကို aliasing aliasing မအောင်မြင်ပါ

1 ။ anti-aliasing သည်စစ်မှန်သောအရောင်ရုပ်ပုံများကိုသာထောက်ပံ့သည်။

ImageanTias () သည် imageSeatetuecolor () ကို အသုံးပြု. ဖန်တီးထားသောပုံရိပ်အရင်းအမြစ်များအတွက်သာတရားဝင်သည်။ အကယ်. ImageCreate () ကို အသုံးပြု. ဖန်တီးထားသော palette image သည် palette-based တစ်ခုဖြစ်ပါက anti-based function သည်အကျိုးသက်ရောက်မည်မဟုတ်ပါ။ PNG Images များကိုများသောအားဖြင့်စစ်မှန်သောအရောင်ပုံစံဖြင့်သိမ်းဆည်းထားလေ့ရှိသော်လည်း Imagecreatformefinmpng () ကိုဖြတ်သန်းသွားသောအခါ၎င်းကို palette form တွင်တင်ဆောင်နိုင်သည် (ပုံ၏အရောင်ပုံစံပေါ် မူတည်. ) palette form တွင်တင်ဆောင်နိုင်သည်။

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

 $image = imagecreatefrompng("https://m66.net/images/sample.png");
$trueColor = imagecreatetruecolor(imagesx($image), imagesy($image));
imagecopy($trueColor, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
imageantialias($trueColor, true);

2 ။ Imageantialias () ပုံရိပ်ကို 0 ယ်ခြင်းအတွက်မမှန်ကန်ပါ

ဤသည်မှာ developer များစွာကိုလျစ်လျူရှုထားသည့်အဓိကအချက်ဖြစ်သည်။ Imageantialias () သည် ပုံအရင်းအမြစ်များ၏ "ပြီးသား pixels" အပေါ်အကျိုးသက်ရောက်မှုမရှိပါ။ ဆိုလိုသည်မှာသင်သည်ရှိပြီးသား PNG ပုံရိပ်ကို 0 င ပါက, ၎င်းသည် "Image filter" မဟုတ်ပါ, သို့သော်ပုံဆွဲခြင်း optimization switch ကိုဖြစ်သည်။

အကယ်. သင်သည် PNG ပုံသဏ္ဌာန်တစ်ခုလုံးကိုမှုန်ဝါးစေလိုလျှင်သို့မဟုတ်ချောမွေ့စေလိုပါက ပုံflilter ကဲ့သို့သော function တစ်ခုကိုအသုံးပြုရန်လိုအပ်သည်။ ဥပမာ -

 $image = imagecreatefrompng("https://m66.net/images/sample.png");
imagefilter($image, IMG_FILTER_SMOOTH, 10);

3 ။ ပွင့်လင်းနောက်ခံသုံးတဲ့အခါကန့်သတ်ချက်များ

PNG သည် alpha charmels (transparency) ကိုထောက်ပံ့သည် ပွင့်လင်းမြင်သာသောရုပ်ပုံများပေါ်တွင်အကြောင်းအရာကိုရေးဆွဲသည့်အခါအနားတွင် "jagged" ရှိနေသေးသည်။ ယခုအချိန်တွင်သင်သည်စိတ်တဇအရောင်များကိုဆွဲထုတ်ရန်နှင့်ပိုမိုကောင်းမွန်သောအစွန်းအသွင်ကူးပြောင်းမှုရရှိရန်အလွှာရောစပ်ခြင်းကိုပေါင်းစပ်နိုင်သည်။

ဥပမာ -

 $color = imagecolorallocatealpha($image, 255, 0, 0, 50); // အနီရောင်အနီရောင်
imagefilledellipse($image, 100, 100, 50, 50, $color);

3 ။ ImageAneTialias ၏မှန်ကန်သောအသုံးပြုမှုအတွက်အကြံပြုချက်များ ()

  1. TrueColor Image အရင်းအမြစ်များကိုအမြဲတမ်းသုံးပါ။

  2. စစ်ဆင်ရေးအတွက်သာဆန့်ကျင် aliasing ကို enable လုပ်ပါ။

  3. ရှိပြီးသားပုံများပေါ်တွင်အလုပ်လုပ်ရန်မမျှော်လင့်ပါနှင့်။

  4. ပိုမိုအဆင့်မြင့်သောပုံရိပ်ပိုကောင်းအောင်ပြုလုပ်ရန် ပုံffileter () နှင့်ပေါင်းစပ်ထားသည်။

4 ။ နိဂုံးချုပ်

အကယ်. သင်သည် Imageantialias () သည် PNG ရုပ်ပုံများနှင့်အလုပ်လုပ်စဉ်အကျိုးသက်ရောက်မှုမရှိပါက၎င်းသည်အဘယ်ကြောင့်ဆိုသော်သင်နားလည်မှုလွဲမှားသောကြောင့်ဖြစ်နိုင်သည်။ ၎င်းသည်ပုံရိပ်ထက်မြက်သောသို့မဟုတ်ချောချောမွေ့မွေ့အတွက် filter တစ်ခုမဟုတ်ပါ, သို့သော် "ဂရပ်ဖစ်ပုံဆွဲခြင်း" ကိုသာသက်ရောက်စေသော switch တစ်ခုမဟုတ်ပါ။ ဘယ်လိုအလုပ်လုပ်ပုံကိုနားလည်ပြီးနောက်မှာသင်အမှန်တကယ်လိုချင်တဲ့ပုံရိပ်ပိုကောင်းတဲ့အကျိုးသက်ရောက်မှုကိုအောင်မြင်ဖို့အခြား GD လုပ်ဆောင်ချက်များကိုပေါင်းစည်းနိုင်တယ်။