PHP ကို အသုံးပြု. Imagecrop () function သည်သတ်မှတ်ထားသော areas ရိယာများသို့ရုပ်ပုံများကိုသီးနှံများကို ဖြတ်. အသုံးပြုနိုင်သောလက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ အကယ်. သင်သည်ပွင့်လင်းမြင်သာသောနောက်ခံရှိသော PNG ဓါတ်ပုံများကိုကိုင်တွယ်ဖြေရှင်းနေပါကမမှန်ကန်ပါကမမှန်ကန်ပါကပွင့်လင်းမြင်သာသောနောက်ခံသည်သီးနှံများကိုသီးနှံများကို ဖြတ်. အနက်ရောင်သို့မဟုတ်အဖြူရောင်နောက်ခံဖြစ်လာသည်။ Imagecrop () function နှင့်သီးနှံများနှင့်သီးနှံများကိုသီးနှံများနှင့်အတူ PNG ရုပ်ပုံများကိုပွင့်လင်းမြင်သာစေရန်မည်သို့အသေးစိတ်ရှင်းပြရမည်ကိုဤဆောင်းပါးတွင်ဖော်ပြပါမည်။
Imagecrop () PHP 5.5.0 မှမိတ်ဆက်ပေးသော function ကိုဖြစ်သည်။ ၎င်း၏ function သည် Image Resource အသစ်ကိုသတ်မှတ်ထားသောအရွယ်အစားနှင့်အညီဖြတ်ကျော်နေသောမူရင်းပုံရိပ်၏ရလဒ်ဖြစ်သည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
$cropped = imagecrop($image, ['x' => 100, 'y' => 100, 'width' => 200, 'height' => 200]);
အကယ်. $ Image သည် PNG ပုံရိပ်တစ်ခုဖြစ်ပါကသီးနှံများသီးနှံပြီးနောက်မူရင်းပုံရိပ်၏နောက်ခံကိုဆက်လက်ထိန်းသိမ်းထားလိုပါကသင်အာရုံစိုက်ရန်လိုအပ်သည့်အဓိကအသေးစိတ်အချက်အလက်များကိုအောက်တွင်ဖော်ပြထားသည်။
PNG ရုပ်ပုံများနှင့်သီးနှံများကို screencrop () ကို အသုံးပြု. သီးနှံများကိုထုတ်လုပ်သည့်အခါ, ဘာဖြစ်လို့လဲဆိုတော့ PHP သည် Transparent channels များကိုပုံမှန်အားဖြင့်အလိုအလျောက်ထိန်းသိမ်းထားခြင်းမရှိပါ။
ဤပြ problem နာကိုဖြေရှင်းရန်ပုံရိပ်ကိုသီးနှံပြီးနောက်အောက်ပါအဆင့်များကိုလုပ်ဆောင်ရန်လိုအပ်သည်။
ပွင့်လင်းသောပတ်တူအသစ်တစ်ခုဖန်တီးပါ။
Alpha Channel Saving ကို Enable;
ဤပွင့်လင်းသောပတ်တူသို့ cropped image ကိုကူးယူပါ။
နောက်ဆုံး output ကိုသို့မဟုတ်ပုံကိုသိမ်းဆည်းပါ။
ဤနေရာတွင် PNG ရုပ်ပုံများကိုပွင့်လင်းမြင်သာသောနောက်ခံဖြင့်မည်သို့တပ်ဆင်ရမည်ကိုပြသသည့်နမူနာကုဒ်၏ပြီးပြည့်စုံသောအပိုင်းအစတစ်ခုဖြစ်သည်။
<?php
// မူရင်းပုံကိုတင်ပါ
$sourcePath = 'https://gitbox.net/images/sample.png';
$src = imagecreatefrompng($sourcePath);
// သီးနှံ area ရိယာကိုသတ်မှတ်
$cropArea = [
'x' => 50,
'y' => 50,
'width' => 200,
'height' => 200
];
// ပုံကိုဖြတ်ပစ်ပါ
$cropped = imagecrop($src, $cropArea);
if ($cropped !== false) {
// အသစ်တစ်ခုကိုပွင့်လင်းပတ်တူဖန်တီးပါ
$transparent = imagecreatetruecolor($cropArea['width'], $cropArea['height']);
// Transparency ရောနှော mode ကို enable
imagealphablending($transparent, false);
// ပြီးပြည့်စုံသောသိမ်းဆည်းပါalphaအချက်အလက်အချက်အလက်
imagesavealpha($transparent, true);
// Varramparent အရောင်များဖြင့်ပတ်တူကိုဖြည့်ပါ
$transparentColor = imagecolorallocatealpha($transparent, 0, 0, 0, 127);
imagefill($transparent, 0, 0, $transparentColor);
// 拷贝ပုံကိုဖြတ်ပစ်ပါ到透明画布上
imagecopy($transparent, $cropped, 0, 0, 0, 0, $cropArea['width'], $cropArea['height']);
// browser မှ output ကိုပုံရိပ်
header('Content-Type: image/png');
imagepng($transparent);
// အရင်းအမြစ်များကိုဖျက်ဆီးသည်
imagedestroy($transparent);
imagedestroy($cropped);
imagedestroy($src);
} else {
echo 'သီးနှံစိုက်ပျိုးခြင်းမအောင်မြင်ပါ';
}
?>
ImageCreatetRuecolor () ပုံသဏ္ဌာန် () မှပြန်လာသောပုံသဏ္ဌာန် () သည် မှန်ကန်သော alpha အချက်အလက်များမပါ 0 င်သောကြောင့်ဖန်တီးမှုကိုဖန်တီးထားသောပတ်တူအသစ်ကိုဖန်တီးရမည်။
isagealphableending () နှင့် Imagesavealpha () ကိုအသုံးပြုခြင်းသည်ပွင့်လင်းမြင်သာသောနောက်ခံကိုထိန်းသိမ်းရန်သော့ချက်ဖြစ်သည်။
အကယ်. သင်သည်နောက်ဆုံးပုံကိုဖိုင်တစ်ခုအနေဖြင့်သိမ်းဆည်းရန်စီစဉ်ထားပါက ImagePng ($ transparent ) အစား imagepng ($ ပွ င့်လင်းသော, outpropng ') ကိုသုံးနိုင်သည်။
PNG ပုံရိပ်များကိုသီးနှံများကိုသီးပွင့်ပွင့်လင်းမြင်သာသောနောက်ခံအကျိုးသက်ရောက်မှုကို PHP တွင်လုံးဝဖြစ်နိုင်ခြေရှိသည်။ Imagecrop () နှင့်ပွင့်လင်းသောပတ်တူများကိုပေါင်းစပ်ခြင်းအားဖြင့်သင်သည်သီးနှံသီးနှံများကိုတိကျစွာထိန်းချုပ်နိုင်ပြီး avatar cropping နှင့်မြေပုံပြုပြင်ခြင်းစသည့်မြင်ကွင်းများအတွက်သင့်တော်သောပုံရိပ်၏မူလပွင့်လင်းမြင်သာမှုကိုထိန်းသိမ်းနိုင်သည်။
ဤနည်းစနစ်ကိုကျွမ်းကျင်သည် PHP Image processing ၏အရည်အသွေးနှင့်ကျွမ်းကျင်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။