လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Image Files ၏ Batch-flipping အတွက် PHP scripting

Image Files ၏ Batch-flipping အတွက် PHP scripting

M66 2025-05-31

Images များပြုပြင်သည့်အခါအထူးသဖြင့်အသုတ်ပုံရိပ်ပြုပြင်ခြင်းအခြေအနေတွင်အထူးသဖြင့်အသုတ်ပုံရိပ်တွင်ဖော်ပြရန်တောင်းဆိုမှုများ (အလျားလိုက်သို့မဟုတ်ဒေါင်လိုက်) ပုံများ PHP သည် server-side ဘာသာစကားဖြင့်ဖြစ်သော်လည်း၎င်းသည်ဤလုပ်ဆောင်မှုကို၎င်း၏ built-in ပုံရိပ်ထုတ်ယူခြင်းစာကြည့်တိုက်မှတစ်ဆင့်အလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ ဤဆောင်းပါးသည် PHP script ကိုအဘိတ်ကိုမည်သို့ရေးသားရမည်ကိုသွန်သင်ပေးမည်,

1 ။ ပြင်ဆင်မှု

သင်၏ဆာဗာပတ် 0 န်းကျင်သည် GD စာကြည့်တိုက်ကိုသေချာအောင်လုပ်ပါ။ ၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်စစ်ဆေးနိုင်သည်။

 <?php
phpinfo();
?>

ဤ script ကို browser (browser တွင်ဝင်ရောက်ကြည့်ရှုပြီးနောက် GD အထောက်အပံ့ကို ရှာဖွေပါ။ ၎င်းကိုဖွင့်ထားလျှင်,

2 ။ အခြေခံယုတ္တိဗေဒ

ကျွန်ုပ်တို့သည်အောက်ပါအဆင့်များကိုဖြည့်စွက်ရန်လိုအပ်သည် -

  1. ပုံများပါ 0 င်သည့်အရင်းအမြစ်လမ်းညွှန်ကိုသတ်မှတ်သည်။

  2. directory ထဲတွင် image files အားလုံးကို traverse;

  3. GD စာကြည့်တိုက်ကို အသုံးပြု. ပုံတစ်ခုစီကိုတင်ပါ။

  4. ပုံ (အလျားလိုက်သို့မဟုတ်ဒေါင်လိုက်) လှန်လှော;

  5. ပစ်မှတ်လမ်းညွှန်သို့ flipped ပုံကိုသိမ်းဆည်းပါ။

3 ။ နမူနာကုဒ်

ဤတွင်ပြည့်စုံသောဥပမာ script တစ်ခုမှာ -

 <?php

$sourceDir = __DIR__ . '/images/originals';
$targetDir = __DIR__ . '/images/flipped';

// ပစ်မှတ်လမ်းညွှန်တစ်ခုဖန်တီးပါ(ဒါမတည်ရှိပါက)
if (!file_exists($targetDir)) {
    mkdir($targetDir, 0755, true);
}

// Supported ပုံအမျိုးအစားများ
$allowedExtensions = ['jpg', 'jpeg', 'png', 'gif'];

// ဖိုင်များကိုအရင်းအမြစ်လမ်းညွှန်တွင်စကင်ဖတ်ပါ
$files = scandir($sourceDir);

foreach ($files as $file) {
    $filePath = $sourceDir . '/' . $file;

    // ခုန်ကျော်သည် . နှင့် ..
    if (in_array($file, ['.', '..'])) {
        continue;
    }

    // ဖိုင် extension ကိုရယူပါ
    $extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));

    // image မဟုတ်သောဖိုင်များကို filter လုပ်ပါ
    if (!in_array($extension, $allowedExtensions)) {
        continue;
    }

    // ပုံကိုတင်ခြင်း
    switch ($extension) {
        case 'jpg':
        case 'jpeg':
            $image = imagecreatefromjpeg($filePath);
            break;
        case 'png':
            $image = imagecreatefrompng($filePath);
            break;
        case 'gif':
            $image = imagecreatefromgif($filePath);
            break;
        default:
            continue 2;
    }

    // ပုံရိပ်အရွယ်အစားကိုရယူပါ
    $width = imagesx($image);
    $height = imagesy($image);

    // အချည်းနှီးသောပတ်တူဖန်တီးပါ
    $flipped = imagecreatetruecolor($width, $height);

    // ပုံကိုအလျားလိုက်လှန်လိုက်ပါ
    for ($x = 0; $x < $width; $x++) {
        imagecopy($flipped, $image, $width - $x - 1, 0, $x, 0, 1, $height);
    }

    // ပုံအသစ်များသိမ်းဆည်းပါ
    $targetPath = $targetDir . '/' . $file;
    switch ($extension) {
        case 'jpg':
        case 'jpeg':
            imagejpeg($flipped, $targetPath);
            break;
        case 'png':
            imagepng($flipped, $targetPath);
            break;
        case 'gif':
            imagegif($flipped, $targetPath);
            break;
    }

    // မှတ်ဉာဏ်သန့်ရှင်းရေး
    imagedestroy($image);
    imagedestroy($flipped);

    echo "ပြုပြင်ထားသောပုံများ:$file\n";
}

echo "အသုတ်လှန်ပြီးစီးခဲ့သည်。သွားရန် flipped ပုံသို့သွားရောက်ပါ:http://m66.net/images/flipped/";

?>

4 ။ မှတ်စုများ

  • Directory Permissions များကိုမှန်ကန်စွာသတ်မှတ်ထားပြီး PHP လုပ်ငန်းသည်ပစ်မှတ်လမ်းညွှန်သို့ဝင်ရောက်ရန်ခွင့်ပြုချက်ရှိကြောင်းသေချာစေပါ။

  • အကယ် . သင်သည်ဒေါင်လိုက်လှန်လှောကြည့်လိုပါက Flip Logic ကိုသာပြုပြင်ပါ။

  • ပွင့်လင်းမြင်သာသော PNG သို့မဟုတ် GIF ပုံများအတွက်ပွင့်လင်းမြင်သာသောပွင့်လင်းသောအပြောင်းအလဲနဲ့ယုတ္တိဗေဒလိုအပ်နိုင်ပါသည်။

V. နိဂုံးချုပ်

ဤဆောင်းပါးတွင်ဖော်ပြထားသော PHP scripts များမှတဆင့်သင်သည် Batch Image Flip လုပ်ငန်းများကိုလျင်မြန်စွာအကောင်အထည်ဖော်နိုင်သည်။ ရုပ်ပုံများ, အလိုအလျောက်ပြုပြင်ခြင်းသို့မဟုတ်အွန်လိုင်းရုပ်ပုံကိရိယာများဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာအသုတ်အမျိုးအစားများ, အကယ်. သင်သည်ဤ script ကိုဝက်ဘ်ဆိုက်ထဲသို့ထည့်သွင်းရန်စီစဉ်ထားပါကလုပ်ဆောင်ချက်များကိုပိုမိုပြီးပြည့်စုံစေရန်ရိုးရှင်းသောသုံးစွဲသူမျက်နှာပြင်သို့မဟုတ်ဖိုင်တင်ခြင်းယုတ္တိဗေဒကိုထည့်ရန်မမေ့ပါနှင့်။