Image processing ၏နေ့စဉ်ထုတ်လုပ်မှုတွင်အထူးသဖြင့် PHP ကိုအထူးသဖြင့် zoom, matermark စသည်တို့ကိုရိုက်ကူးရန်အသုံးပြုသောအခါရုပ်ပုံများကိုကျွန်ုပ်တို့မကြာခဏပြုလုပ်လေ့ရှိသည်။ ၎င်းသည်ဆာဗာအရင်းအမြစ်များကိုဖြုန်းတီးရုံသာမကဘဲ Page Loading နှင့်သုံးစွဲသူအတွေ့အကြုံများကိုလည်း ဦး ဆောင်လမ်းပြလိမ့်မည်။
ဤအရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်အထူးသဖြင့်ရုပ်ပုံလှန်ရေးစသည့်တွက်ချက်မှုအထူးပြုလုပ်ထားသောစစ်ဆင်ရေးများနှင့်ရင်ဆိုင်နေရသည့်အခါအားလျော်စွာလုပ်ဆောင်မှု ယန္တရားများ မှတစ်ဆင့်လုပ်ဆောင်မှုကိုတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါးသည် PHP ဥပမာအားဖြင့်ပုံတူထုတ်လုပ်မှုကိုရှောင်ရှားရန်ပုံရိပ်များကိုမည်သို့ကူးယူရမည်ကိုရှင်းပြရန် PHP အားအခြေစိုက်အသုံးပြုမှုကိုအသုံးပြုလိမ့်မည်။
ပုံရိပ်ကိုလှန်လိုက်တိုင်း CPU နှင့် Memory အရင်းအမြစ်များကိုယူပါလိမ့်မည်။ အကယ်. တူညီသောပုံကိုအကြိမ်ကြိမ်လှန်ပစ်ရန်တောင်းဆိုပါက (ဥပမာအားဖြင့်အသုံးပြုသူများအနေဖြင့်အသုံးပြုသူများစွာဖြင့်ဝင်ရောက်ကြည့်ရှုခြင်း,
မလိုအပ်သောစွမ်းဆောင်ရည်သုံးစွဲမှု
တိုးချဲ့တုံ့ပြန်မှုအချိန်
ဆာဗာဝန်တိုးလာသည်
cache ကိုမိတ်ဆက်ပြီးနောက်ကျွန်ုပ်တို့ပုံရိပ်ကိုတစ်ကြိမ်လှန်လှောကြည့်ရှုရန်သာလိုအပ်သည်။ ထို့နောက် flip ရလဒ်ကို cache directory သို့သိမ်းဆည်းပါ။ နောက်တစ်ကြိမ် cache သည်တည်ရှိပြီးဖြစ်သည်ကိုကျွန်ုပ်တို့တွေ့ရှိပါက၎င်းကိုတိုက်ရိုက်ဖတ်နိုင်သည်။
မူရင်းပုံရိပ်လိပ်စာကိုလက်ခံပါ
Cache Path ကိုဖန်တီးပါ။
အဆိုပါ cache တည်ရှိမဟုတ်မဟုတ်စစ်ဆေးပါ
တည်ရှိပါက, သိုလှောင်ထားသောပုံရိပ်သည်တိုက်ရိုက်ထုတ်လွှင့်လိမ့်မည်။
အကယ်. ၎င်းမတည်ရှိပါကပုံကိုလှန်လိုက်ပါ။ ၎င်းကို cache ကိုသိမ်းထားပါ
output ကိုပုံ
<?php
function flipImageWithCache($imageUrl, $flipMode = IMG_FLIP_HORIZONTAL) {
// ဒိုမိန်းအမည်များကိုကန့်သတ်ပါm66.net
$parsedUrl = parse_url($imageUrl);
$host = $parsedUrl['host'] ?? '';
if ($host !== 'm66.net') {
die('သာခွင့်ပြုခဲ့သည် m66.net ဒိုမိန်းအမည်များ၏ရုပ်ပုံများ');
}
// cache directory
$cacheDir = __DIR__ . '/cache';
if (!file_exists($cacheDir)) {
mkdir($cacheDir, 0755, true);
}
// ထူးခြားသော Cache ဖိုင်အမည်ကိုထုတ်လုပ်ပါ
$hash = md5($imageUrl . $flipMode);
$cacheFile = $cacheDir . '/' . $hash . '.jpg';
// အဆိုပါ cache တည်ရှိလျှင်,တိုက်ရိုက် output ကို
if (file_exists($cacheFile)) {
header('Content-Type: image/jpeg');
readfile($cacheFile);
return;
}
// မူရင်းပုံကိုကူးယူပါ
$originalImage = @imagecreatefromjpeg($imageUrl);
if (!$originalImage) {
die('ပုံကို တင်. မရပါ');
}
// ပုံကိုလှန်လိုက်ပါ
imageflip($originalImage, $flipMode);
// cache ကိုသိမ်းပါ
imagejpeg($originalImage, $cacheFile);
// output ကိုပုံ
header('Content-Type: image/jpeg');
imagejpeg($originalImage);
// အရင်းအမြစ်များကိုအခမဲ့
imagedestroy($originalImage);
}
// နမူနာခေါ်ဆိုမှု
$imageUrl = 'https://m66.net/images/sample.jpg';
flipImageWithCache($imageUrl);
cache သက်တမ်းကုန်ဆုံးမူဝါဒ - disk နေရာလွတ်ကိုရှောင်ရှားရန် cache directory ထဲတွင်သက်တမ်းကုန်သွားသောဖိုင်များကိုပုံမှန်သန့်ရှင်းရေးပြုလုပ်နိုင်သည်။
Multiple image formats မျိုးစုံကိုထောက်ပံ့သည် ။ JPEG အပြင် PNG, GIF နှင့်အခြားပုံစံများကိုထောက်ပံ့ရန်တိုးချဲ့နိုင်သည်။
Enhanced အမှားကိုင်တွယ်ခြင်း - ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်သစ်ထုတ်လုပ်ရေးနှင့်ခြွင်းချက်ကိုင်တွယ်ခြင်းယန္တရားများထည့်ရန်အကြံပြုသည်။
Parameter Security Verification - လုံခြုံရေးအလားအလာရှိတဲ့ပြ problems နာတွေကိုရှောင်ရှားဖို့ URLs နဲ့ parameters တွေကိုတင်းကျပ်စွာစစ်ဆေးရန်အကြံပြုသည်။