လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ပုံတစ်ပုံကိုပုံဖော်နည်းကိုပုံဖော်နည်းကိုဘယ်လိုဖြတ်ကူးနိုင်မလဲ။ လက်တွေ့ကျတဲ့နည်းလမ်းများမိတ်ဆက်

ပုံတစ်ပုံကိုပုံဖော်နည်းကိုပုံဖော်နည်းကိုဘယ်လိုဖြတ်ကူးနိုင်မလဲ။ လက်တွေ့ကျတဲ့နည်းလမ်းများမိတ်ဆက်

gitbox 2025-05-29

PHP Image processing ၏လယ်ကွင်းတွင်ရုပ်ပုံများကိုသီးနှံများသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ အကြိမ်များစွာကျွန်ုပ်တို့သည်သတ်မှတ်ထားသော area ရိယာကိုဖြတ်ရန်သာမကပုံပျက်သောရှောင်ရှားရန်မပြောင်းလဲသော cropped image အချိုးအစားကိုမပြောင်းလဲလိုသည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုကိုမည်သို့အကောင်အထည်ဖော်ရမည်, လက်တွေ့ကျကျကုဒ်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုရှင်းပြရန်ဤဆောင်းပါးသည်မသိဘဲရမ်းမေးတဲ့ function impongetcclosup ကိုအာရုံစိုက်လိမ့်မည်။


1 ။ IgnetComip-function ကဘာလဲ။

ImpengetClip function (ဤနေရာတွင်စိတ်ကြိုက် function ကိုယူဆသော) ကိုပုံရိပ်တစ်ခုမှသတ်မှတ်ထားသော area ရိယာကိုအဓိကအားဖြင့်အသုံးပြုလေ့ရှိသည်။ PHP တွင် built-in Gd စာကြည့်တိုက်တွင်ဤလုပ်ဆောင်မှုမရှိပါကကျွန်ုပ်တို့သည်အကောင်အထည်ဖော်မှုကိုစိတ်ကြိုက်ပြုပြင်ပြီးသီးပွင့်ခြင်း function ကိုဖြည့်စွက်နိုင်သည်။

အဓိကအကြံဥာဏ်မှာ - မူရင်းပုံရိပ်အရင်းအမြစ်တွင် PASS PASS, Starting Point နှင့်အနံအကျယ်နှင့်အမြင့်ကိုသွဒီနမူနာများကိုသီးနှံယူပါ။


2 ။ မူရင်းအချိုးအစားကိုထိန်းသိမ်းရန်စိတ်ကူး

သီးနှံရိတ်သိမ်းခြင်းကာလအတွင်းမပြောင်းလဲသောအချိုးအစားကိုထိန်းသိမ်းထားရန်သော့ချက်မှာပစ်မှတ်သီးနှံအရွယ်အစားနှင့်မူရင်းပုံရိပ်အရွယ်အစားအပေါ် အခြေခံ. သင့်လျော်သောသီးနှံသေတ္တာကိုတွက်ချက်ရန်ဖြစ်သည်။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. မူရင်းပုံ၏အကျယ်နှင့်အမြင့်ရရှိသွားတဲ့။

  2. ပစ်မှတ်သီးနှံအကျယ်နှင့်အမြင့်အချိုးအစားအရသီးနှံသေတ္တာ၏အရွယ်အစားကိုဆုံးဖြတ်ပါ။

  3. သီးနှံသေတ္တာ၏ coop box ကို coinc ကိုတွက်ချက်ပါ (သို့မဟုတ်လိုအပ်သကဲ့သို့အနေအထားကိုညှိပါ) သေချာစေရန်အတွက် CROP box ၏သွဒီနိတ်များကိုတွက်ချက်ပါ။

  4. area ရိယာကိုထုတ်ယူဖို့ clipping function ကိုသုံးပါ။


3 ။ လက်တွေ့ဥပမာကုဒ်

အောက်ဖော်ပြပါနမူနာကုဒ်သည် PHP တွင် Igrogetclip function ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသပြီးစကေးသီးနှံစိုက်ပျိုးခြင်းကိုထိန်းသိမ်းရန်ဖြစ်သည်။ ဥပမာကလစ်ပစ်မှတ်အရွယ်အစားသည် $ clipwidth နှင့် $ clipheleight ဖြစ်သည်ဟုယူဆသည်။

 <?php
function imagegetclip($srcImage, $clipWidth, $clipHeight) {
    // မူရင်းပုံအကျယ်နှင့်အမြင့်ကိုရယူပါ
    $srcWidth = imagesx($srcImage);
    $srcHeight = imagesy($srcImage);

    // ပစ်မှတ်အချိုးအစားတွက်ချက်
    $targetRatio = $clipWidth / $clipHeight;
    $srcRatio = $srcWidth / $srcHeight;

    // အဆိုပါ clipping area ရိယာအရွယ်အစားတွက်ချက်,အချိုးအစားကိုထိန်းသိမ်းရန်
    if ($srcRatio > $targetRatio) {
        // မူရင်းပုံရိပ်တွင်ကျယ်ဝန်းသည်,အမြင့်အားဖြင့်သီးနှံ
        $newHeight = $srcHeight;
        $newWidth = (int)($srcHeight * $targetRatio);
        $srcX = (int)(($srcWidth - $newWidth) / 2);
        $srcY = 0;
    } else {
        // မူရင်းပုံသည်အတော်လေးမြင့်မားသည်,အကျယ်အားဖြင့်သီးနှံ
        $newWidth = $srcWidth;
        $newHeight = (int)($srcWidth / $targetRatio);
        $srcX = 0;
        $srcY = (int)(($srcHeight - $newHeight) / 2);
    }

    // ပစ်မှတ်ထားပုံရိပ်အရင်းအမြစ်တစ်ခုဖန်တီးပါ
    $clipImage = imagecreatetruecolor($clipWidth, $clipHeight);

    // ပစ်မှတ်အရွယ်အစားမှသီးနှံနှင့်စကေး
    imagecopyresampled(
        $clipImage,     // ပစ်မှတ်ပုံရိပ်
        $srcImage,      // အရင်းအမြစ်ပုံရိပ်
        0, 0,           // ပစ်မှတ် start ကိုသွဒီနိတ်
        $srcX, $srcY,   // အရင်းအမြစ်ပုံရိပ်裁剪起点
        $clipWidth, $clipHeight, // ပစ်မှတ်အကျယ်နှင့်အမြင့်
        $newWidth, $newHeight     // source clipping area ရိယာအကျယ်နှင့်အမြင့်
    );

    return $clipImage;
}

// အသုံးပြုမှုဥပမာ
$imagePath = 'https://gitbox.net/images/sample.jpg'; // အသုံးပြုgitbox.netဒိုမိန်းအမည်ကိုအစားထိုးပါ
$srcImage = imagecreatefromjpeg($imagePath);
$clipWidth = 300;
$clipHeight = 200;

$clippedImage = imagegetclip($srcImage, $clipWidth, $clipHeight);

// popput popped popped
header('Content-Type: image/jpeg');
imagejpeg($clippedImage);

// အရင်းအမြစ်များကိုအခမဲ့
imagedestroy($srcImage);
imagedestroy($clippedImage);
?>

4 ။ ဖော်ပြချက်

  • အထက်ဖော်ပြပါကုဒ်သည်ပုံပျက်သောပုံပျက်မှုများကိုရှောင်ရှားရန်ဖြတ်တောက်ထားသောပုံရိပ်နှင့်အမြင့်အချိုးအရပျံ့နှံ့မှုနှင့်အမြင့်အချိုးအစားအရကောက်ပင်းထိုးထားသည့် code သည် copped area ရိယာကိုတွက်ချက်သည်။

  • အဆိုပါ ImagecopyResampled function သည်ပုံကိုကောက်ပဲသီးနှံများသာမက output အရွယ်အစားသည်မျှော်လင့်ချက်များနှင့်ကိုက်ညီစေရန်သေချာစေရန်အတွက်အကောင်အထည်ဖော်ရန်အတွက်အကောင်အထည်ဖော်ရန်အတွက်လည်းအကောင်အထည်ဖော်ရန်အတွက်ဖြစ်သည်။

  • Gitbox.net ကို သုံးပါဥပမာနမူနာ URL ၏အမည်ကိုအစားထိုးရန်, ဥပမာကိုတိုက်ရိုက်အသုံးပြုရန်အဆင်ပြေသည်။