လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> impegetclip function cropping ပြီးနောက်ပုံရိပ်အရွယ်အစားပြ problem နာကိုဖြေရှင်းပါ

impegetclip function cropping ပြီးနောက်ပုံရိပ်အရွယ်အစားပြ problem နာကိုဖြေရှင်းပါ

gitbox 2025-05-28

PHP ကိုအသုံးပြုပြီးရုပ်ပုံသီးနှံများကိုအသုံးပြုသောအခါ IgnetCetPip function ကိုမူရင်းပုံမှသတ်မှတ်ထားသော area ရိယာကိုအသုံးပြုလေ့ရှိသည်။ သို့သော်အချို့ developer အချို့ကအမှန်တကယ်အသုံးပြုမှုတွင်တွေ့လိမ့်မည်။ ဤဆောင်းပါးသည်ဤဘုံပြ problem နာကိုအာရုံစိုက်ပါလိမ့်မည်,

1 ။ ပြ problem နာဖြစ်ရပ်ဆန်း

ကျွန်ုပ်တို့တွင်အောက်ပါကုဒ်ရှိသည်ဆိုပါစို့။

 $src = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
$clip = imagecrop($src, ['x' => 50, 'y' => 50, 'width' => 200, 'height' => 100]);

if ($clip !== FALSE) {
    imagejpeg($clip, 'https://gitbox.net/output/cropped.jpg');
    imagedestroy($clip);
}
imagedestroy($src);

သီအိုရီအရကျွန်ုပ်တို့သည် copped image ကို 200x100 pixels ဖြစ်လိုသည်။ သို့သော်တစ်ခါတစ်ရံတွင် output သည် 199x100 ဖြစ်လိမ့်မည်

2 ။ ဖြစ်နိုင်သောအကြောင်းရင်းများကိုခွဲခြမ်းစိတ်ဖြာခြင်း

1 ။ မူရင်းပုံရိပ်သည်အရွယ်အစားမလုံလောက်ပါ

သင်သီးနှံများကိုသင်ကြိုးစားသည့်နေရာသည်မူရင်းပုံ နယ်နိမိတ် ထက် ကျော်လွန်သောအခါ, x + width <= မူရင်းပုံသဏ္ဌာန် နှင့် Y + အမြင့် <= မူရင်းပုံသဏ္ဌာန် <= မူရင်းပုံသဏ္ဌာန်အမြင့် သည်သီးနှံမကျမှုကိုရှောင်ရှားရန်လိုအပ်ချက်ဖြစ်သည်။

2 ။ ကိုသွဒီနိတ်များနှင့်အကျယ်နှင့်အမြင့်၏တွက်ချက်မှုအမှား

Image Procession စဉ်အတွင်း PHP တွင် PHP သည် Internal Pixel Potion များကိုပြည်တွင်း၌ပြုလုပ်သောကြောင့်အစွန်းရောက် Pixel Pots သည်အထူးသဖြင့် floating point တွက်ချက်မှုများပြောင်းလဲသွားသည့်အခြေအနေတွင်ဖြစ်သည်။

3 ။ zoom image ကိုမူလပုံအဖြစ်သုံးပါ

အချို့သော developer များသည် <img> tag တွင် zoomed image address မှအရင်းအမြစ်ပုံရိပ်များကိုရရှိသည်။ ဤချဲ့ကြည့်ခြင်းကို 0 န်ဆောင်မှုခံယူသူမှအကောင်အထည်ဖော်သည်။ ဆာဗာသည်မူလအရွယ်အစားကိုဆက်လက်လုပ်ဆောင်နေဆဲဖြစ်ပြီးသီးနှံ area ရိယာသွေဖည်မှုကိုဖြစ်ပေါ်စေသည်။

3 ။ ဖြေရှင်းနည်းများနှင့်ကျွမ်းကျင်မှု

1 ။ မူရင်းပုံရိပ်အရွယ်အစားကိုရယူပြီးအတည်ပြုပါ

Copping area ရိယာသည်အကန့်အသတ်မရှိကြောင်းသေချာစေရန်ပုံရိပ်၏အကျယ်နှင့်အမြင့်ကိုအတည်ပြုရန် Getimensize () function ကိုသုံးပါ။

 list($width, $height) = getimagesize('https://gitbox.net/images/sample.jpg');

2 ။ floating point ကိုကိန်းဂဏန်းများကိုတညီတညွတ်တည်းပြောင်းပါ

သီးနှံသီးနှံများကိုတွက်ချက်မှုများမှ (ထိုဒေသကိုရွေးချယ်ရန်မောက်စ်ကိုဆွဲရန်) တွက်ချက်မှု များမှ လာသည်ဆိုပါစို့

 $x = floor($x);
$y = floor($y);
$w = floor($w);
$h = floor($h);

3 ။ ကိုယ်တိုင်ပစ်မှတ်ပတ်တူကိုဖန်တီးပြီးနောက်ကိုယ်တိုင်ကူးယူပါ

Imagecrop () သည်မတည်မငြိမ်လုပ်ဆောင်ပါကသီးနှံစိုက်ပျိုးခြင်းယုတ္တိဗေဒကိုကိုယ်တိုင်ကိုယ်ကျအကောင်အထည်ဖော်နိုင်သည်။

 $dst = imagecreatetruecolor($w, $h);
imagecopy($dst, $src, 0, 0, $x, $y, $w, $h);
imagejpeg($dst, 'https://gitbox.net/output/alternative.jpg');
imagedestroy($dst);

၎င်းသည် စိတ်ကူးစိတ်သန်း ၏ထိန်းချုပ်မှုမရှိသောအပြုအမူကိုရှောင်ရှားနိုင်ပြီးပိုမိုမြင့်မားသောလိုက်ဖက်မှုရရှိနိုင်သည်။

4 ။ နိဂုံးချုပ်

ပုံအသီးသီးတွင်ရိုးရိုးရှင်းရှင်းရိုးရိုးရှင်းရှင်းရိုးရိုးရှင်းရှင်းပြောရလျှင်၎င်းသည်ပုံရိပ်အရင်းအမြစ်များ, browser and server ပြုပြင်ခြင်းနည်းလမ်းများကြောင့်မျှော်မှန်းထားသည်ထက်ပိုမိုပြ problems နာများဖြစ်နိုင်သည်။ ဤဆောင်းပါးတွင်မိတ်ဆက်ပေးသောဆုံးဖြတ်ချက်နှင့်ဖြေရှင်းနည်းနည်းဗျန်သည် imaggetcrop သို့မဟုတ် isagecrop ကို အသုံးပြုသောအခါမျှော်လင့်ထားသည့်အရွယ်အစားနှင့်ကိုက်ညီသောပုံများကိုသက်သာစေရန်မျှော်လင့်ပါသည်။

ဤနည်းစနစ်များကိုကျွမ်းကျင်ခြင်းသည်အွန်လိုင်းအမှားများကိုလျှော့ချရုံသာမက PHP Image processing ကိုပိုမိုနားလည်ရန်သင့်အားပိုမိုနားလည်ရန်လည်းသင့်အားပိုမိုနားလည်သဘောပေါက်စေသည်။