PHP Image processing တွင် imageflip () function သည် image functions functions သည်အလျားလိုက်, ဒေါင်လိုက်သို့မဟုတ်နှစ် ဦး စလုံးအလျားလိုက်လှည့်ဖျားခြင်းအတွက်အလွန်အဆင်ပြေသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များကဘုံပြ problem နာကိုကြုံတွေ့ရလိမ့်မည်။
ဤဆောင်းပါးသည်ဤပြ problem နာ၏အကြောင်းရင်းကိုတူးဖော်ပြီးပွင့်လင်းမြင်သာသော PNG ရုပ်ပုံများကိုဖြေရှင်းရန်အတွက်အဖြေရှာလိမ့်မည်။
ရိုးရှင်းသောဥပမာကုဒ်ကိုကြည့်ရအောင်။
<?php
$img = imagecreatefrompng('https://m66.net/images/sample.png');
imageflip($img, IMG_FLIP_HORIZONTAL);
imagepng($img, 'flipped.png');
imagedestroy($img);
?>
ဤကုဒ်၏ရည်ရွယ်ချက်မှာ PNG ပုံရိပ်ကိုအလျားလိုက်လှန်ပြီးသိမ်းဆည်းရန်ဖြစ်သည်။ သို့သော်သိမ်းဆည်းထားသော flipping.png သည် ပွင့်လင်းမြင်သာသော area ရိယာ၏ပြ problem နာကိုဖြစ်ပေါ်စေလိမ့်မည်။
ပြ problem နာ၏ရင်းမြစ်မှာ Imperfulip () သူ့ဟာသူ alpha collels ၏ retention ကိုမကိုင်တွယ်နိုင်ခြင်းဖြစ်သည်။ imageflip () impha များအတွက် alpha များအတွက် enpha များအတွက်အထောက်အပံ့များကိုမဖြေရှင်းနိုင်သောအခါအထူးထင်ရှားသည်။
အထူးသဖြင့်:
PNG ရုပ်ပုံများတွင် alpha colls (transparency information) ပါ 0 င်နိုင်သည်။
alpha channel channel support ကိုဖွင့်ထားပြီး appha ရောနှောခြင်းကို imageflip ကိုမသုံးမီ () alpha mixing ကိုပိတ်ထားပါက GD စာကြည့်တိုက်သည်ပွင့်လင်းမြင်သာသော area ရိယာကိုအလိုအလျောက်ဖြည့်ဆည်းပေးလိမ့်မည်။
ImageFlip () မိတ္တူကူးယူထားသော pixel data များကိုသာလျှင် alpha အချက်အလက်များကိုအလိုအလျောက်မလုပ်ဆောင်ပါ။
ဤပြ problem နာကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည် image flip မတိုင်မီနှင့်အပြီး GD စာကြည့်တိုက်၏ alpha channel processing method ကိုရှင်းရှင်းလင်းလင်းသတ်မှတ်ရန်လိုအပ်သည်။ သော့ချက်အချက်နှစ်ချက်ရှိသည်။
Imagesavealpha () - Alpha Channel အတွက် Saving Saving ကိုဖွင့်ပေးသည်။
Transparency ကိုအကျိုးသက်ရောက်စေသောပေါင်းစပ်မှုကိုရှောင်ရှားရန် imagealphableing () alpha blending mode ကိုပိတ်ပါ။
ဤတွင်ပြုပြင်ထားသောမှန်ကန်သောကုဒ်ပါသောဥပမာတစ်ခုဖြစ်သည်။
<?php
$img = imagecreatefrompng('https://m66.net/images/sample.png');
// ရောနှော mode ကိုပိတ်ပါ,ချန်လှပ်ထား alpha အတန်း
imagealphablending($img, false);
imagesavealpha($img, true);
// တစ် ဦး လှန်စစ်ဆင်ရေးလုပ်ဆောင်ပါ
imageflip($img, IMG_FLIP_HORIZONTAL);
// ပုံအသစ်တစ်ခုအဖြစ်သိမ်းဆည်းပါ
imagepng($img, 'flipped.png');
imagedestroy($img);
?>
ဤနည်းအားဖြင့်ပြုပြင်ထားသောပုံရိပ်သည်မူရင်းပွင့်လင်းမြင်သာသောအကျိုးသက်ရောက်မှုကိုဆက်လက်ထိန်းသိမ်းထားနိုင်ပြီးပွင့်လင်းမြင်သာသော area ရိယာကိုအနက်ရောင်ပြောင်းလဲစေနိုင်သည်။
အကယ်. သင်သည်ပုံများကိုထုတ်လုပ်ခြင်းသို့မဟုတ်ပိုမိုရှုပ်ထွေးသောပုံရိပ်ပြုပြင်ခြင်း (ပေါင်းစပ်ခြင်း, လည်ပတ်ခြင်း,
ရုပ်ပုံများကို ဖန်တီး. ပွင့်လင်းမြင်သာသောနောက်ခံကိုကိုယ်တိုင်ဖန်တီးသည့်အခါ isagecreatetuecolorcolor () ကိုသုံးပါ။
ရုပ်ပုံအသစ်များအတွက်ပွင့်လင်းမြင်သာအရောင်များကိုကိုယ်တိုင်ဖြည့်ပါ။
imagesavealpha ကိုအမြဲတမ်းသတ်မှတ်ထားပါ (img img, true); ချွေတာမတိုင်မီ။
ဥပမာအားဖြင့်:
$newImg = imagecreatetruecolor($width, $height);
imagesavealpha($newImg, true);
imagealphablending($newImg, false);
$transparent = imagecolorallocatealpha($newImg, 0, 0, 0, 127);
imagefill($newImg, 0, 0, $transparent);
Transparent PNG Images ကိုသုံးရန် Transparency ဆုံးရှုံးခြင်းသည် GD စာ ကြည့် တိုက်သည် alpha channel ကိုမည်သို့ကိုင်တွယ်သည်ကိုမမှန်မကန်မမှန်ကန်ကြောင်းဖော်ပြခြင်းကြောင့်ဖြစ်သည်။ PNG ၏ပွင့်လင်းမြင်သာသောအကျိုးဆက်များကိုအပြည့်အဝထိန်းသိမ်းရန် Blending Mode ကိုပိတ်ထားပါ။
GD ၏ alpha ယန္တရားကိုမှန်ကန်သောနားလည်မှုနှင့်ကိုင်တွယ်ခြင်းကိုကိုင်တွယ်ခြင်းကဤပြ problem နာကိုဖြေရှင်းနိုင်ရုံသာမက PHP image processing ၏လယ်ပြင်၌ပိုမိုကြံ့ခိုင်သောကုဒ်ကိုရေးရန်ကူညီသည်။