PHP Image processing ၏နယ်ပယ်တွင် ImageFlip () သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ကျွန်ုပ်တို့အားဓာတ်ပုံများကိုအလျားလိုက်, ဤကဲ့သို့သောစစ်ဆင်ရေးကိုပုံတည်းဖြတ်ခြင်း, image အထူးအကျိုးသက်ရောက်မှုမျိုးဆက်များနှင့်ပုံရိပ်အသိအမှတ်ပြုခြင်းနှင့်ပုံရိပ်အသိအမှတ်ပြုမှုကိုပင်အသုံးပြုသည်။ ဒီတော့ဒီ function ကိုအောက်ခြေမှာဘယ်လိုအကောင်အထည်ဖော်သလဲ။ ရုပ်ပုံများကိုမှတ်ဉာဏ်တွင်မည်သို့ဖွဲ့စည်းထားသနည်း။ ဤဆောင်းပါးသည် imageflip ၏အကောင်အထည်ဖော်မှုကိုမှတ်ဉာဏ်တည်ဆောက်ပုံ၏ရှုထောင့်မှအကောင်အထည်ဖော်ရန် () ကိုခွဲခြမ်းစိတ်ဖြာရန်သင့်အားယူပါလိမ့်မည်။
ImageFlip () သည် PHPG GD စာကြည့်တိုက်တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီးအခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool imageflip(GdImage $image, int $mode)
$ mode သည် အောက်ပါကိန်းရှင်များထဲမှတစ်ခုဖြစ်နိုင်သည်။
img_flip_horizontal : အလျားလိုက်လှန်
img_flip_vertical : ဒေါင်လိုက်လှန်
img_flip_both : အလျားလိုက်နှင့်ဒေါင်လိုက်တစ်ပြိုင်နက်လှန်လှောကြည့်ပါ
နမူနာကုဒ်:
$image = imagecreatefromjpeg('https://m66.net/images/sample.jpg');
imageflip($image, IMG_FLIP_HORIZONTAL);
imagejpeg($image, 'flipped.jpg');
imagedestroy($image);
PHP သည် GD စာကြည့်တိုက်ကိုပုံများပြုလုပ်ရန်အသုံးပြုသည်။ ပုံရိပ်အရင်းအမြစ်များအားလုံးသည် GDIMAGE ဖွဲ့စည်းပုံများအဖြစ်မှတ်ဥာဏ်ဖြင့်ကိုယ်စားပြုသည်။ ဤဖွဲ့စည်းပုံတွင်ပုံ၏ pixel တစ်ခုစီကိုရှုထောင့်နှစ်ခုကိုခင်းကျင်းပုံစံတစ်ခုစီတွင်သိမ်းဆည်းထားပြီးဖွဲ့စည်းပုံသည်အကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -
typedef struct {
int sx; // image အကျယ်
int sy; // image အမြင့်
int **pixels; // pixel ခင်းကျင်းရန်ညွှန်ပြ
...
} gdImage;
Pixel တစ်ခုစီသည် RGBA ၏သတင်းအချက်အလက်များပါ 0 င်သော pixel တစ်ခုစီသည်ကိန်းဂဏန်း 32 ခုဖြစ်သည်။
C ဘာသာစကားအဆင့်တွင် PHP ၏ ImpLIVIV () သည် pixel အချက်အလက်များကို GDIMAGE ဖွဲ့စည်းပုံတွင်အမှန်တကယ်ပြောင်းလဲသည်။ ၎င်း၏နိယာမကိုသရုပ်ဖော်ရန်အလျားလိုက် Flip ကိုဥပမာတစ်ခုအဖြစ်အသုံးပြုကြပါစို့။
ပုံတစ်ပုံစီမှတစ်ဆင့် IDEARE ပြီးရင် shift pixels left left left left left left left ။ ဥပမာအားဖြင့်, width 4 နှင့်အတူပုံရိပ်တွေအတွက်
မူရင်းဖြစ်သော: A B C D
လှန်ယင်: D C B A
Pseudo-Code ၏အခြေခံအကောင်အထည်ဖော်မှုသည်အောက်ပါအတိုင်းဖြစ်သည် -
for (y = 0; y < image->sy; y++) {
for (x = 0; x < image->sx / 2; x++) {
temp = image->pixels[y][x];
image->pixels[y][x] = image->pixels[y][image->sx - 1 - x];
image->pixels[y][image->sx - 1 - x] = temp;
}
}
ဤအချိန်တွင်ပုံ၏ကော်လံတစ်ခုစီမှတစ်ဆင့် joint လုပ်ပါ။ ထို့နောက် row row row နှင့် symmetric rows လဲလှယ်ခြင်း
မူရင်းဖြစ်သော:
1အိုကေ: A B C
2အိုကေ: D E F
3အိုကေ: G H I
လှန်ယင်:
1အိုကေ: G H I
2အိုကေ: D E F
3အိုကေ: A B C
Pseudocode:
for (y = 0; y < image->sy / 2; y++) {
temp_row = image->pixels[y];
image->pixels[y] = image->pixels[image->sy - 1 - y];
image->pixels[image->sy - 1 - y] = temp_row;
}
ဤစစ်ဆင်ရေးသည်အထက်ပါနှစ်ခုဖြစ်စဉ်များကိုတစ် ဦး ချင်းစီလုပ်ဆောင်ရန်ဖြစ်သည်။
PHP သည်ရည်ညွှန်းရေတွက်ခြင်းယန္တရားတစ်ခုဖြစ်သည်။ ပုံရိပ်အရင်းအမြစ်များကိုမှားယွင်းစွာပြန်လွှတ်ပေးခြင်းမှကာကွယ်ရန်သို့မဟုတ်ပြန်လည်သုံးခြင်းမှကာကွယ်ရန်အတွက် ဒေါ်လာပုံသဏ္ဌာန် သည်ထူးခြားသောမိတ္တူဖြစ်သည်ကိုသေချာစေသည်။ ထို့အပြင်မှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားနိုင်ရန်အတွက် developer များသည် image အရင်းအမြစ်အရင်းအမြစ်များကိုကိုယ်တိုင်ဖြန့်ချိရန်လိုအပ်သည်။
imagedestroy($image);
ဤသည် gdimage အားဖြင့်သိမ်းပိုက်ထားသောမှတ်ဉာဏ်ရှင်းလင်းပါလိမ့်မယ်။
လူမှုဖူလုံရေးပလက်ဖောင်းများစွာသည်အသုံးပြုသူများအားအောက်ပါရိုးရှင်းသောကုဒ်များကို အသုံးပြု. အကောင်အထည်ဖော်နိုင်သည့်တင်ထားသော avatars များကိုလှန်လှောကြည့်ရှုရန်ခွင့်ပြုသည်။
if ($_FILES['avatar']['tmp_name']) {
$image = imagecreatefromjpeg($_FILES['avatar']['tmp_name']);
imageflip($image, IMG_FLIP_VERTICAL);
imagejpeg($image, '/var/www/m66.net/uploads/flipped_avatar.jpg');
imagedestroy($image);
}
Imageflip () ၏အကောင်အထည်ဖော်မှုနိယာမသည်ရိုးရှင်းသော်လည်းမှတ်ဉာဏ်တွင်ရှုထောင့်နှစ်မျိုးရှိသည့်နည်းလမ်းများဖြင့်ပုံအချက်အလက်များကိုမည်သို့သိမ်းဆည်းထားကြောင်းကိုထင်ဟပ်သည်။ ဤနိယာမကိုကျွမ်းကျင်ပြီးနောက်သင် PHP image functions များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စွာအသုံးပြုနိုင်သည်, သို့သော် Image Processing Libraries ၏နောက်ထပ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်အုတ်မြစ်ချနိုင်သည်။
၎င်းသည်ပုံဖော်ခြင်းကိုလှန်လှောတာလား, ရှုပ်ထွေးသောပုံရိပ်တွက်ချက်မှုများကိုပြုလုပ်ရန်သို့မဟုတ်ပိုမိုရှုပ်ထွေးသောပုံရိပ်တွက်ချက်မှုများကိုလုပ်ဆောင်ခြင်းဖြစ်စေ,