လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> thumbnail generation အတွက် isaecreathringdgd2 () ကိုသုံးပါ

thumbnail generation အတွက် isaecreathringdgd2 () ကိုသုံးပါ

M66 2025-05-18

PHP ရှိရုပ်ပုံများကိုလုပ်ဆောင်ရန်လုပ်ဆောင်ချက်များသည်အလွန်ကြွယ်ဝသည်။ အထူးသဖြင့် GD စာကြည့်တိုက်သည်ရုပ်ပုံများကိုဖန်တီးရန်, ပြုပြင်ရန်နှင့်သိမ်းဆည်းရန်အဆင်ပြေသောနည်းလမ်းများပေးသည်။ ဤဆောင်းပါးသည် imagecreatgdgdgd2 () function ကိုအသုံးပြုခြင်းကိုအာရုံစိုက်ပြီး thumbnail များကိုထုတ်လုပ်ရန်နှင့်ပုံရိပ်ထုတ်ပေးမှုများကိုပိုမိုကောင်းမွန်စေရန်နှင့်ပုံဖော်ခြင်းကိုပြသရန်အမှန်တကယ်ကိစ္စများနှင့်ပေါင်းစပ်ပါလိမ့်မည်။

1 ။ ISESECREATGD2 ()?

imagecreathrintgdgd2 () သည် PHPG GD စာကြည့်တိုက်တွင် Image image image formes များကိုဖန်တီးရန်အသုံးပြုသော PHPG GD စာကြည့်တိုက်တွင်အလုပ်လုပ်သည်။ GD2 သည်မြန်နှုန်းမြင့်စာဖတ်ခြင်းနှင့်ပုံအချက်အလက်များကိုသိမ်းဆည်းရန်သင့်တော်သည့် GD စာကြည့်တိုက်သို့အပ်နှံထားသောပုံစံဖြစ်သည်။

function ကိုအဓိပ္ပါယ်:

 resource imagecreatefromgd2(string $filename)

parameter သည်ဖော်ပြချက်:

  • $ filename : GD2 format နဲ့ image file path ။

Value ကိုပြန်သွားပါ

  • အောင်မြင်သောအခါပုံရိပ်အရင်းအမြစ်ကိုပြန်ပို့ပြီးပျက်ကွက်သည့်အခါ မှားယွင်းသော နောက်သို့ပြန်ပို့သည်။

2 ။ ကြည့်ရှုပါ - thumbnails generate နှင့်အပြောင်းအလဲနဲ့ optimize လုပ်ပါ

.gd2 ပုံရိပ်တွေကိုပုံမှန်မဟုတ်ပေမယ့် cache သို့မဟုတ် internal processing သောအခါ၎င်းတို့၏စွမ်းဆောင်ရည်သည် application တန်ဖိုးရှိဆဲဖြစ်သည်။ အောက်တွင်လက်တွေ့ကျသောလျှောက်လွှာဥပမာနှင့်ပေါင်းစပ်။ ရှင်းပြပါလိမ့်မည်။

ဥပမာ - GD2 ပုံရိပ်တွေမှ thumbnail များကိုထုတ်လုပ်ပါ

ကျွန်ုပ်တို့တွင် Image form for ား တွင်ကုန်ကြမ်းဖိုင်တစ်ခုရှိသည်ဆိုပါစို့။

 <?php
// မူရင်းဖြစ်သော GD2 image path
$sourcePath = 'images/sample.gd2';

// ဖတ်ရန်ကြိုးစားပါ GD2 အရုပ်
$sourceImage = imagecreatefromgd2($sourcePath);

if (!$sourceImage) {
    die('ဖတ်လို့မရပါဘူး GD2 အရုပ်。');
}

// 获取မူရင်းဖြစ်သောအရုပ်的宽高
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);

// Thumbnail အရွယ်အစားကိုသတ်မှတ်ပါ
$thumbWidth = 150;
$thumbHeight = 150;

// သမ်းနေးအရင်းအမြစ်ကိုဖန်တီးပါ
$thumbImage = imagecreatetruecolor($thumbWidth, $thumbHeight);

// 使用高质量缩放方法复制အရုပ်内容
imagecopyresampled(
    $thumbImage,
    $sourceImage,
    0, 0, 0, 0,
    $thumbWidth, $thumbHeight,
    $sourceWidth, $sourceHeight
);

// ဖိုင်အသစ်မှ output ကို
$thumbPath = 'thumbnails/thumb.jpg';
imagejpeg($thumbImage, $thumbPath, 85); // 85 အတွက် JPEG ချုံ့အရည်အသွေး

// အရင်းအမြစ်များကိုအခမဲ့
imagedestroy($sourceImage);
imagedestroy($thumbImage);

echo "အောင်မြင်စွာ Thumbnail Generation: https://m66.net/$thumbPath";
?>

3 ။ အကောင်းမြင်အကြံပြုချက်များ

ပုံရိပ်ထုတ်ပေးမှုနှင့်လိုက်လျောညီထွေထိရောက်မှုကိုတိုးတက်စေရန်အတွက်အောက်ပါ optimization အကြံပေးချက်များကိုအကြံပြုပါသည်။

  1. Imagecreate အစား isaecreatetuecolor () ကိုသုံးပါ ()) - ၎င်းသည်အရောင်တိကျမှန်ကန်မှုကိုပိုမိုအထောက်အကူပြုပြီးပုံအရည်အသွေးပိုမိုမြင့်မားသည်။

  2. Imagecopyresampled အစား agecopyresampled () ()) ကိုသုံးပါ () - ယခင်သည်အရည်အသွေးမြင့်မားပြန်လည်နေရာချထားရေး algorithm ကိုအသုံးပြုသည်။

  3. သင့်လျော်သော compression အရည်အသွေးကိုသင့်လျော်စွာထိန်းချုပ်ထားပါ ။ JPEG ၏ချုံ့အရည်အသွေးကို 75 မှ 90 ကြားတွင်သတ်မှတ်ထားသည်။ ၎င်းသည်ပုံရိပ်အရည်အသွေးကိုသေချာစေသည်။

  4. cache processing ရလဒ်များ - မကြာခဏထုတ်လုပ်ထားသော thumbnails များအတွက်မကြာခဏဆိုသလိုထပ်ခါတလဲလဲအပြောင်းအလဲနဲ့ရှောင်ရှားရန်ရလဒ်များကိုသိမ်းဆည်းရန်အကြံပြုသည်။

4 ။ မှတ်စုများ

  • ISESECREATGDGD2 ()) မသုံးမီ server တွင် GD စာကြည့်တိုက်သည် Enabled လုပ်ပြီး GD2 format ကိုထောက်ပံ့ရန်သေချာပါစေ။

  • GD2 ပုံရိပ်များကို browser တွင်တိုက်ရိုက်ကြည့်ရှု။ မရပါ။ JPEG သို့မဟုတ် PNG ကဲ့သို့သောဘုံပုံစံအဖြစ်သို့ပြောင်းလဲရမည်။

  • ဖိုင်လမ်းကြောင်းကိုသင့်လျော်စွာဖတ်ရန်နှင့်ခွင့်ပြုချက်ပေးရန်သေချာစေရန်သေချာစေသင့်သည်။

အကျဉ်းချုပ်

imagecreathrintgd2 () gd2 image format ကိုကိုင်တွယ်ရန်လက်တွေ့ကျတဲ့ function တစ်ခုဖြစ်ပါတယ်။ ImagecopyResampled () , imagejpeg () နှင့်အခြားနည်းလမ်းများကိုပေါင်းစပ်ခြင်းအားဖြင့်, အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် GD2 format ကိုရှေ့တန်းမျက်နှာပြင်အတွက်မကြာခဏအသုံးမပြုသော်လည်းအရှိန်မြှင့်တင်ရန်အတွက်အလယ်အလတ် cache format အဖြစ်အသုံးပြုမှု၏အားသာချက်ရှိသည်။ ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သော PHP Image processing technology ကိုပိုမိုကောင်းမွန်အောင်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။

ဒီ post ကို flowchart ကိုပရိုဂရမ်တစ်ခုထပ်ထည့်ဖို့ငါ့ကိုလိုချင်လား။