လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> image flip ၏မှန်ကန်သောလမ်းကြောင်းကိုရယူရန် ImageFlip နှင့် exif_read_data ကိုပေါင်းစပ်ပါ

image flip ၏မှန်ကန်သောလမ်းကြောင်းကိုရယူရန် ImageFlip နှင့် exif_read_data ကိုပေါင်းစပ်ပါ

gitbox 2025-05-27

ပုံများနှင့်အလုပ်လုပ်သောအခါတစ်ခါတစ်ရံတွင်ကျွန်ုပ်တို့သည်ပုံရိပ်၏မမှန်မကန်တိမ်းညွတ်မှုဖြင့်ပြ problems နာများကြုံတွေ့ရသည်။ အထူးသဖြင့်စမတ်ဖုန်းနှင့်ဓာတ်ပုံရိုက်သည့်အခါရုပ်ပုံ၏ညွှန်ကြားချက်ကိုမကြာခဏဒေတာတွင်သိုလှောင်ထားလေ့ရှိသည်။ ပုံကိုမှန်ကန်စွာဖော်ပြရန်ကျွန်ုပ်တို့သည်ဤအချက်အလက်အပေါ် အခြေခံ. ပုံ၏တိမ်းညွတ်မှုကိုပြုပြင်ရန်လိုအပ်သည်။ Image Flip လည်ပတ်မှုများကိုကိုင်တွယ်ရန် PHP သည် Image Flip လုပ်ငန်းများကိုကိုင်တွယ်ရန် impflip function ကိုထောက်ပံ့ပေးသည် ဤဆောင်းပါးသည်ပုံ၏လှန်ချက်ကိုဖြေရှင်းရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ Exif ဒေတာအတွက်လမ်းညွှန်

Exif (လဲလှယ်ပုံရိပ်ဖိုင် format ား format) သည်ပုံရိပ်ရိုက်ကူးမှုအခြေအနေများ, ကင်မရာချိန်ညှိချက်များနှင့်ပတ်သက်သည့်သတင်းအချက်အလက်အမျိုးမျိုးပါ 0 င သည့်ပုံရိပ်ဖိုင်၏အစိတ်အပိုင်းဖြစ်သည်။ orientation ၏တန်ဖိုးသည်ပုံမှန်ရိုက်ကူးရေးလမ်းကြောင်းနှင့်နှိုင်းယှဉ်ထားသောရုပ်ပုံ၏အလှည့်ထောင့်သို့မဟုတ်လှန်လှောသည်။

ဘုံ orientation တန်ဖိုးများကိုအောက်ပါအတိုင်းဖြစ်သည် -

  • 1: ပုံမှန် (အလှည့်သို့မဟုတ်လှန်ခြင်းမရှိပါ)

  • 3: 180 ဒီဂရီလှည့်

  • 6: လက်ယာရစ် 90 ဒီဂရီလှည့်

  • 8: 90 ဒီဂရီ counterclockwise လှည့်

  • 2: ဒေါင်လိုက်လှန်

  • 4: အလျားလိုက်လှန်

  • 5: ဒေါင်လိုက်လက်ယာရစ်လက်ယာရစ်ကိုလှန်လှောကြည့်ပါ

  • 7. အလျားလိုက်ကြည့်ရှုပြီး 90 ဒီဂရီလက်ယာရစ်ကိုလှည့်ပါ

ထို့ကြောင့်ကျွန်ုပ်တို့သည်ပုံကိုလှန်လှောကြည့်ရှုရန်လိုအပ်သည်နှင့်အ exif အချက်အလက်များရှိ orientation တန်ဖိုးကို အခြေခံ. လှန်လှောကြည့်ရှုခြင်းရှိမရှိကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။

2 ။ exif data ကိုဖတ်ရန် exif_read_data ကို သုံးပါ

Exif_read_Data function သည် impor file တွင် exif အချက်အလက်များကိုဖတ်နိုင်သည်။ ပုံ၏ညွှန်ကြားချက်ကိုဆုံးဖြတ်ရန်ကျွန်ုပ်တို့သည်ဤလုပ်ဆောင်မှုမှတစ်ဆင့် onientation information ကိုရယူနိုင်သည်။

Exif အချက်အလက်များကိုဖတ်ရှုခြင်းအတွက်ဥပမာကုဒ်ဖြစ်သည်။

 <?php
$file = 'path/to/your/image.jpg';

// ဖိုင်တည်ရှိရှိမရှိစစ်ဆေးပါ
if (file_exists($file)) {
    // ဖတ်EXIFအချက်များ
    $exif = exif_read_data($file);

    // လှျင်EXIFအချက်များ包含Orientationလယ်ကွင်း
    if (isset($exif['Orientation'])) {
        echo 'Orientation: ' . $exif['Orientation'];
    } else {
        echo 'မတွေ့ပါOrientationလယ်ကွင်း';
    }
}
?>

ဤကုဒ်သည် image file ထဲရှိ Exif ဒေတာများကိုဖတ်ပြီး Orientation Field ၏တန်ဖိုးကိုဖော်ပြထားသည်။ အကယ်. ဤကွက်လပ်သည် Exif ဒေတာတွင်မတည်ရှိပါက,

3 ။ ရုပ်ပုံ orientation ကိုပြုပြင်ရန် imageflip function ကိုသုံးပါ

Impflip သည် PHP ရှိ GD စာကြည့်တိုက် function ကိုပုံများလှန်ရန်အသုံးပြုနိုင်သည်။ Exif Data တွင် Orientation တန်ဖိုးကို အခြေခံ. ImageFlip ကို မည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။

imfif_read_data နှင့် imagefflip လုပ်ဆောင်ချက်များကိုပုံရိပ် orientation ကိုဖြေရှင်းရန် Exif_read_Data နှင့် Imageflip လုပ်ဆောင်ချက်များကိုပေါင်းစပ်ထားသောကုဒ်အပြည့်အစုံဥပမာတစ်ခုဖြစ်သည်။

 <?php
function fixImageOrientation($file) {
    // ဖိုင်တည်ရှိရှိမရှိစစ်ဆေးပါ
    if (file_exists($file)) {
        // ပုံကိုရယူပါEXIFအချက်များ
        $exif = exif_read_data($file);
        
        // လှျင်EXIFအချက်များ包含Orientationလယ်ကွင်း
        if (isset($exif['Orientation'])) {
            // ရယူOrientation၏တန်ဖိုး
            $orientation = $exif['Orientation'];
            
            // ဓာတ်ပုံများတင်နေသည်
            $image = imagecreatefromjpeg($file);

            // အရOrientationရုပ်ပုံ orientation ကို fix ရန်တန်ဖိုး
            switch ($orientation) {
                case 3:
                    // လှည့်180ဒီဂရီ
                    imageflip($image, IMG_FLIP_BOTH);
                    break;
                case 6:
                    // 顺时针လှည့်90ဒီဂရီ
                    $image = imagerotate($image, -90, 0);
                    break;
                case 8:
                    // 逆时针လှည့်90ဒီဂရီ
                    $image = imagerotate($image, 90, 0);
                    break;
                case 2:
                    // ဒေါင်လိုက်လှန်
                    imageflip($image, IMG_FLIP_VERTICAL);
                    break;
                case 4:
                    // အလျားလိုက်လှန်
                    imageflip($image, IMG_FLIP_HORIZONTAL);
                    break;
                case 5:
                    // ဒေါင်လိုက်လှန်并လှည့်90ဒီဂရီ顺时针
                    imageflip($image, IMG_FLIP_VERTICAL);
                    $image = imagerotate($image, -90, 0);
                    break;
                case 7:
                    // အလျားလိုက်လှန်并လှည့်90ဒီဂရီ顺时针
                    imageflip($image, IMG_FLIP_HORIZONTAL);
                    $image = imagerotate($image, -90, 0);
                    break;
                default:
                    // ပြုပြင်မလိုအပ်ပါ
                    break;
            }

            // ပြုပြင်ထားသောပုံကိုသိမ်းဆည်းပါ
            imagejpeg($image, 'path/to/save/fixed_image.jpg');

            // အခမဲ့ပုံရိပ်မှတ်ဉာဏ်
            imagedestroy($image);

            echo "ပုံရိပ် ဦး တည်ချက်ကိုအောင်မြင်စွာပြန်လည်ပြုပြင်သည်!";
        } else {
            echo "မဟုတ်Orientationလယ်ကွင်း,ပြုပြင်မလိုအပ်ပါ图片方向。";
        }
    } else {
        echo "ပုံရိပ်ဖိုင်မရှိပါ。";
    }
}

// ပုံကို ဦး တည်ရန် function ကိုခေါ်ခြင်း
fixImageOrientation('path/to/your/image.jpg');
?>

ဤကုဒ်တွင် exif_read_data function မှတစ်ဆင့်ပုံ၏ exif အချက်အလက်များကိုပထမ ဦး ဆုံးဖတ်ပါ ထို့နောက်ဤတန်ဖိုးကိုအပေါ် အခြေခံ. ပုံရိပ်၏တိမ်းညွတ်မှုကိုပြန်လည်ပြုပြင်ရန် Impflip နှင့် ImageFerotate ကို မည်သို့အသုံးပြုရမည်ကိုဆုံးဖြတ်ပါ။ ပုံသေပုံရိပ်ကိုသတ်မှတ်ထားသောလမ်းကြောင်းသို့သိမ်းဆည်းလိမ့်မည်။