PHP တွင် imageflip () function သည်အလွန်လက်တွေ့ကျသောပုံရိပ်ထုတ်ယူခြင်းလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော်စီးပွားရေးကျင့် 0 တ်ကိုတိုက်ရိုက်ဤလုပ်ဆောင်မှုကိုတိုက်ရိုက်ခေါ်ဆိုခြင်းက Code Restundancy ဖြစ်စေရုံသာမကစာဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းမှုကိုလည်းလျှော့ချနိုင်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန်ကျွန်ုပ်တို့သည်စီမံကိန်းများသို့မဟုတ် module များစွာကိုပြန်လည်အသုံးပြုရန်၎င်းကိုအသုံး 0 င်သောပုံရိပ်ထုတ်ယူခြင်းသင်တန်းသို့ကျွန်ုပ်တို့ letsate လုပ်နိုင်သည်။
ImageFlip () သည် PHPG GD စာကြည့်တိုက်၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီးပုံများကိုလှန်ရန်အသုံးပြုသည်။ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool imageflip(GdImage $image, int $mode)
$ mode ကို parameter သည်အောက်ပါကိန်းစုထဲကတစ်ခုဖြစ်နိုင်သည်။
img_flip_horizontal : အလျားလိုက်လှန်
img_flip_vertical : ဒေါင်လိုက်လှန်
img_flip_both : အလျားလိုက် + ဒေါင်လိုက်လှန်
ImageFlip ကို class method တစ်ခုသို့ encapsulating encapsult လုပ်ခြင်းသည်အောက်ပါအကျိုးကျေးဇူးများရှိသည်။
reusability ကိုတိုးတက်အောင်လုပ်ပါ ။ Encapsulation ပြီးနောက်၎င်းကိုထပ်ခါတလဲလဲယုတ္တိဗေဒအရေးအသားမပါဘဲကွဲပြားခြားနားသော module များဖြင့်ခေါ်ဆိုနိုင်သည်။
ပိုမိုကောင်းမွန်သောပြုပြင်ထိန်းသိမ်းမှု - Flip Logic ကို update လုပ်သည့်အခါ, သင်သာအတန်းတစ်ခုပြုပြင်ရန်လိုအပ်သည်။
Enhanced Readability : စီးပွားရေးကုဒ်ရှင်းလင်းရေးနှင့်တာ 0 န် 0 တ္တရားများပိုမိုရှင်းလင်းသည်။
ဤတွင်ရိုးရှင်းသောပုံရိပ်ထုတ်ယူခြင်းအတန်းဥပမာတစ်ခု၏ဥပမာတစ်ခုဖြစ်သည်။ ImageFlip () နည်းလမ်းကိုအတန်းထဲတွင် flipimage () နည်းလမ်းတစ်ခုအဖြစ် oncapsulate:
class ImageProcessor
{
/**
* ပုံကိုလှန်လိုက်ပါ
*
* @param string $filePath image file path
* @param int $mode လှောင်ပြောင်ပုံစံ(IMG_FLIP_HORIZONTAL、IMG_FLIP_VERTICAL、IMG_FLIP_BOTH)
* @param string|null $outputPath output လမ်းကြောင်း,ဗလာလျှင်မူရင်းပုံကို Overwrite လုပ်ပါ
* @return bool အောင်မြင်မှုသို့မဟုတ်မ
*/
public function flipImage(string $filePath, int $mode, ?string $outputPath = null): bool
{
if (!file_exists($filePath)) {
return false;
}
$imageInfo = getimagesize($filePath);
if ($imageInfo === false) {
return false;
}
[$width, $height, $type] = $imageInfo;
switch ($type) {
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($filePath);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($filePath);
break;
case IMAGETYPE_GIF:
$image = imagecreatefromgif($filePath);
break;
default:
return false;
}
if (!imageflip($image, $mode)) {
return false;
}
$outputPath = $outputPath ?: $filePath;
switch ($type) {
case IMAGETYPE_JPEG:
imagejpeg($image, $outputPath);
break;
case IMAGETYPE_PNG:
imagepng($image, $outputPath);
break;
case IMAGETYPE_GIF:
imagegif($image, $outputPath);
break;
}
imagedestroy($image);
return true;
}
}
$processor = new ImageProcessor();
// 水平ပုံကိုလှန်လိုက်ပါ并保存为新文件
$processor->flipImage('/var/www/m66.net/images/sample.jpg', IMG_FLIP_HORIZONTAL, '/var/www/m66.net/images/sample_flipped.jpg');
အထက်ဖော်ပြပါအချက်များအပေါ် အခြေခံ. သင်သည်တူညီသောပုံသဏ္ဌာန်ထုတ်လုပ်မှုလုပ်ငန်းများဖြစ်သောစိုက်ပျိုးခြင်း, ချုံ့ခြင်းနှင့်ရေစာများကဲ့သို့သော class function များကိုတိုးချဲ့နိုင်ပြီး Laravel သို့မဟုတ်အခြားမူဘောင်များအသုံးပြုရန်,
Imageflip () ကို အထွေထွေလူတန်းစားနည်းဖြင့် encapsulating လုပ်ခြင်းအားဖြင့်ပုံရိပ်ထုတ်ခြင်းယုတ္တိဗေဒသည်၎င်းကိုပိုမိုပြုပြင်မွမ်းမံခြင်းနှင့်စနစ်တကျနည်းကိုသိသိသာသာတိုးတက်အောင်ပြုလုပ်သည်။ ထိုသို့သောအလေ့အကျင့်များသည်အထူးသဖြင့်သင်၌အရွယ်မရောက်နိုင်သော,