လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> မှတ်ဉာဏ်အသုံးပြုမှုပြ issues နာများနှင့် imagecreatgdgd2 ကိုပိုမိုကောင်းမွန်စေရန် ()

မှတ်ဉာဏ်အသုံးပြုမှုပြ issues နာများနှင့် imagecreatgdgd2 ကိုပိုမိုကောင်းမွန်စေရန် ()

M66 2025-05-17

Image Php PhP အတွက် PHP ကိုအသုံးပြုသောအခါ imagecreat trokrefromgd2 () function ကို gd2 format ဖြင့်ဖွင့်ရန်အသုံးပြုနိုင်သည်။ သို့သော်ဤလုပ်ဆောင်မှုသည်မှတ်ဥာဏ်မလုံလောက်မှုကိုအလွယ်တကူမလုံလောက်မှုကိုအလွယ်တကူဖြစ်ပေါ်စေနိုင်သည် (ဥပမာ Memory Size) သည်ကြီးမားသောရုပ်ပုံများသို့မဟုတ်မှတ်ဥာဏ်အကန့်အသတ်ရှိသောပတ်ဝန်းကျင်တွင်ဖြစ်စေ, ဤဆောင်းပါးသည် imagecreat trewhygdgdgd2 () ကို Runtime ၏တည်ငြိမ်မှုကိုတိုးတက်စေရန်နှင့်အစီအစဉ်၏တည်ငြိမ်မှုကိုတိုးတက်စေရန်အတွက်ဤဆောင်းပါးသည် optimization မဟာဗျူဟာအချို့ကိုစူးစမ်းလေ့လာလိမ့်မည်။

1 ။ Imagecreathretgdgd2 ၏မှတ်ဉာဏ်သုံးစွဲမှုကိုနားလည်ပါ။

imagecreathringdgd2 () ပုံတစ်ခုလုံးကို gdimage အရင်းအမြစ်အဖြစ်သတ်မှတ်လိမ့်မည်။ ဤလုပ်ငန်းစဉ်တွင် -

  1. ပုံအကြောင်းအရာကိုမှတ်ဉာဏ်ထဲသို့အပြည့်အဝတင်ဆောင်လိမ့်မည်

  2. GD စာကြည့်တိုက်သည်အပြည့်အဝ pixel မြေပုံရေးဆွဲစားပွဲကိုအကောင်အထည်ဖော်လိမ့်မည်

  3. ပွင့်လင်းမြင်သာသောလမ်းကြောင်းများရှိရုပ်ပုံများအတွက်နောက်ထပ်ပွင့်လင်းမြင်သာမှုဆိုင်ရာအချက်အလက်များလိုအပ်သည်။

ဤအချက်များပေါ်တွင် superimposes superimposes superimposes မြင့်မားသော resolution ပုံရိပ်တွေကိုတင်တဲ့အခါမှတ်ဉာဏ်အသုံးပြုမှုကိုဖြစ်ပေါ်စေပါတယ်။ ဥပမာအားဖြင့်, 3000x2000 pixels of Rice Image (24-bit color) သည်မှတ်ဥာဏ် 20 MB နှင့်နီးသည်။

2 ။ မှတ်ဥာဏ်အသုံးပြုမှုကိုပိုကောင်းအောင်လုပ်ရန်နည်းဗျူဟာများ

1 ။ PHP ၏မှတ်ဉာဏ်ကန့်သတ်ချက်ကိုကြိုတင်ပြင်ဆင်ပါ

ini_set () ကို သုံးပါသို့မဟုတ်ကိုယ်တိုင် script ၏ထိပ်ဆုံးတွင်အသုံးပြုပါ (ဆာဗာခွင့်ပြုသည်):

 ini_set('memory_limit', '256M');

?? မှတ်ချက် - ၎င်းသည် optimization method မဟုတ်ပါ, ၎င်းသည်တိုက်ရိုက် crashing program ကိုရှောင်ရှားသည်။ အစစ်အမှန်အကောင်းမြင်ခြင်းသည်ပုံရိပ်ပမာဏသို့မဟုတ်အခြားရွေးချယ်စရာ Loading နည်းလမ်းများကိုလျှော့ချရန်ဖြစ်သည်။

2 ။ gd2 image files များကိုချုံ့ခြင်းသို့မဟုတ်လျှော့ချခြင်း

ISEACREATEFREMGD2 () မသုံးမီမူရင်းပုံရိပ်များကိုတတ်နိုင်သမျှအရွယ်အစားကိုအရွယ်အစားသတ်မှတ်ပါ။ ပုံရိပ်ကြီးကိုကျိုးကြောင်းဆီလျော်သောအရွယ်အစားသို့ချုံ့ရန်အခြား imageemagick ကဲ့သို့သောပုံရိပ်ကိရိယာများကိုသုံးနိုင်သည်။ ထို့နောက် GD နှင့်၎င်းကိုတင်ပါ။

တနည်းအားဖြင့်, PHP - ထောက်ပံ့သောပုံချောင်းချဲ့ရန်ကိရိယာကို အသုံးပြု. မှတ်ဉာဏ်ဝန်ထုပ်ဝန်ပိုးကိုလျှော့ချရန် Loading ပြီးနောက်အထိစကေးကိုအသုံးပြုပါ။

 $srcImage = imagecreatefromgd2('https://m66.net/images/bigimage.gd2');

$dstWidth = imagesx($srcImage) / 2;
$dstHeight = imagesy($srcImage) / 2;

$dstImage = imagescale($srcImage, $dstWidth, $dstHeight);
imagedestroy($srcImage);

3 ။ gd2 ဖိုင်ကို segments များရှိ segments များတွင်တင်ပါ (ဖွဲ့စည်းပုံခွင့်ပြုပါက)

GD2 ဖိုင်ကိုယ်တိုင်က compressed နှင့် compressed formats နှစ်ခုလုံးကိုထောက်ခံသည်။ အကယ် . ၎င်းသည် compressed format ဖြစ်လျှင်အချက်အလက်များကိုသီအိုရီတွင်အစိတ်အပိုင်းများတွင်ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

ပြောင်ပြောင်ပြောင်ပြောင်ပြောင်ပြောင်ပြောင်ပြောင်ပြောင်တင်းတင်း GD2 format ကိုအသုံးပြုခြင်းနှင့် JPEG သို့မဟုတ် PNG သို့ပြောင်းရန်ဖြစ်သည်။

4 ။ ယာယီ cache ဖိုင်များကိုသုံးပါ

imagecreathingdgd2 () ကိုမကြာခဏခေါ်ဆိုမှုများကိုရှောင်ကြဉ်ပါ။

 $cacheFile = '/tmp/cache_image.jpg';

if (!file_exists($cacheFile)) {
    $srcImage = imagecreatefromgd2('https://m66.net/images/bigimage.gd2');
    imagejpeg($srcImage, $cacheFile, 85); // ပြောင်းလဲပြီးချုံ့ JPEG သိုကာတာ
    imagedestroy($srcImage);
}

$img = imagecreatefromjpeg($cacheFile);

ထိုသို့ပြုလုပ်ခြင်းသည်မှတ်ဥာဏ်အသုံးပြုမှုကိုလျှော့ချရုံသာမက loading မြန်နှုန်းကိုလည်းတိုးတက်စေသည်။

3 ။ GD2 format ကိုမသုံးပါနှင့် (အကြံပြုသည်)

GD2 သည်အသုံးများသောပုံရိပ်လဲလှယ်ပုံစံမဟုတ်ပါ, သင့်တွင် option ရှိပါက PNG, JPEG သို့မဟုတ်ဝက်ဘ်စာမျက်နှာများသို့ပြောင်းရန်အထူးအကြံပြုလိုပါသည်။ သူတို့မှာ ... ရှိသည်:

  • ပိုမိုမြင့်မားသောချုံ့ထိရောက်မှု;

  • ပိုမိုကျယ်ပြန်သဟဇာတ,

  • ပိုကောင်းတဲ့စွမ်းဆောင်ရည်။

GD2 သို့ GD2 သို့ပြောင်းလဲခြင်းဥပမာ -