PHP တွင် Imagecreat troflethrimgd2 function ကို gd2 format ဖြင့်ဖန်တီးရန်အသုံးပြုသည်။ GD2 သည် GD စာကြည့်တိုက် (ပုံရိပ်ထုတ်ယူခြင်းအတွက်စာကြည့်တိုက်) ၏ဖိုင်အမျိုးအစား (ပုံရိပ်ထုတ်ယူခြင်းစာကြည့်တိုက်) သည်ဖိုင်ပုံစံဖြစ်သည်။ ဤဆောင်းပါးသည်တင်ထားသော GD2 ဖိုင်များကိုကိုင်တွယ်ရန်နှင့်အသုံးပြုစဉ်အတွင်းကြုံတွေ့ရနိုင်သည့်ဘုံပြ problems နာများကိုဖြေရှင်းရန် စိတ်ကူးကြည့်စစ်ဆေးမှု ပုံစံစာအုပ်ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
တင်ထားသောဖိုင်များကိုထုတ်ယူသောအခါဖိုင်များ၏အမျိုးအစားနှင့် format များကိုမျှော်လင့်ချက်များနှင့်အညီ ဦး စွာသေချာအောင်ပြုလုပ်ရမည်။ GD2 ဖိုင်များအတွက် uploaded file သည်မှန်ကန်သော gd2 image file တစ်ခုရှိမရှိအတည်ပြုရန်လိုအပ်သည်။ ၎င်းသည်အမှားအယွင်းများကိုရှောင်ရှားရန်သာမကစနစ်ကိုအန္တရာယ်ရှိသောဖိုင်တိုက်ခိုက်မှုများမှကာကွယ်ပေးသည်။
ဖိုင်တစ်ခုကိုတင်သည့်အခါ uploaded file ကို $ _files array မှတဆင့်ဝင်ရောက်နိုင်သည်။ ဥပမာအားဖြင့်:
if ($_FILES['image']['error'] == UPLOAD_ERR_OK) {
$uploadedFile = $_FILES['image']['tmp_name'];
$fileType = mime_content_type($uploadedFile);
// ဖိုင်အမျိုးအစားဟုတ်မဟုတ်စစ်ဆေးပါGD2ပမာဏ
if ($fileType == 'image/vnd.gd2') {
// ဖိုင်ကိုဆက်လက်လုပ်ဆောင်ပါ
} else {
echo "ကျေးဇူးပြု. တရားဝင်တင်ပါGD2image file!";
exit;
}
} else {
echo "ဖိုင်တင်ခြင်းမအောင်မြင်ပါ!";
exit;
}
ဤဥပမာတွင် upload သည်အောင်မြင်မှုရှိမရှိကို ဦး စွာစစ်ဆေးပြီး, ဖိုင်သည် GD2 ပုံရိပ်ပုံစံတွင်ရှိ, ရှိမရှိစစ်ဆေးရန် Mime_Content_Type function ကိုအသုံးပြုပါ။ ဖိုင်အမျိုးအစားအတည်ပြုပြီးမှသာပုံရိပ်ထုတ်ယူမှုလုပ်ငန်းများကိုဆက်လက်လုပ်ဆောင်သွားမည်ဖြစ်သည်။
ဖိုင်၏ပုံစံကိုကျွန်ုပ်တို့အတည်ပြုပြီးသည်နှင့်တစ်ပြိုင်နက် uploaded gd2 image file ကို load လုပ်ရန် imagecreat trefrophgd2 function ကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်မှုသည်ပုံရိပ်အရင်းအမြစ်ကိုပြန်ပို့ပေးလိမ့်မည်, ဥပမာပေါ်ရှိသီးနှံများသီးနှံများ, ကူးပြောင်းခြင်း, ပြောင်းလဲခြင်းပုံစံများစသည်တို့ကဲ့သို့နောက်ပိုင်းတွင်ပြုလုပ်နိုင်သည်။
$image = imagecreatefromgd2($uploadedFile);
if ($image === false) {
echo "တင်. မရပါGD2စာချုပ်စာတမ်း!";
exit;
}
// ပြီးနောက်ပုံရိပ်ကိုအောင်မြင်စွာတင်ထားတယ်,နောက်ဆက်တွဲအပြောင်းအလဲနဲ့လုပ်ဆောင်ပါ
အကယ်. Imagecreathingdgd2 function သည်ဖိုင်ကိုဖွင့်ရန်ပျက်ကွက်ပါက၎င်းသည် မှားယွင်းစွာ ကိုင်တွယ်ရန်လိုအပ်သည်, ထို့ကြောင့်၎င်းကိုမှားယွင်းစွာကိုင်တွယ်ရန်လိုအပ်သည်။
စိတ်ကူးယဉ်ပုံသဏ္ဌာန် imagecreathringdgd2 function ကိုကိုယ်တိုင်မပြောင်းလဲပါ။ loaded gd2 ပုံရိပ်ကိုအခြားပုံစံများသို့ပြောင်းရန်လိုအပ်ပါက (ဥပမာ - JPEG) ကဲ့သို့သောအခြားပုံစံများသို့ပြောင်းရန်လိုအပ်ပါက imagepng , imagejpeg နှင့်အခြားလုပ်ဆောင်မှုများကိုပြောင်းလဲနိုင်သည်။
ဥပမာအားဖြင့်, loaded gd2 image ကို PNG format ဖြင့်ပြောင်းပါ။
$pngFile = 'converted_image.png';
if (imagepng($image, $pngFile)) {
echo "ပုံရိပ်ကိုအောင်မြင်စွာကူးပြောင်းခဲ့သည်PNGပမာဏ!";
} else {
echo "Image Convertion မအောင်မြင်ပါ!";
}
အလားတူပင်သင်သည်၎င်းကို imagejpeg ကို အသုံးပြု. JPEG ပုံစံဖြင့်သိမ်းဆည်းနိုင်သည်သို့မဟုတ်လိုအပ်ပါကပြောင်းရန်အခြားလုပ်ဆောင်မှုများကိုသုံးနိုင်သည်။
ISEACREATGDGD2 ကို အသုံးပြုသောအခါအောက်ပါတို့တွင်ဖော်ပြထားသောဘုံပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။
ပြ issue နာ 1: GD2 ဖိုင်သည် 0 င်ရန်ပျက်ကွက်ခဲ့သည်
ပုံသည် 0 င်ရန်ပျက်ကွက်ပါကအောက်ပါအကြောင်းပြချက်များကြောင့်ဖြစ်နိုင်သည်။
ဖိုင်သည်မှန်ကန်သော gd2 image file မဟုတ်ပါ။
ဖိုင်ပျက်သွားသည်။
PHP တွင် GD စာကြည့်တိုက်တပ်ဆင်ထားခြင်းမရှိပါ။ သို့မဟုတ် GD စာကြည့်တိုက်သည် GD2 format ကိုမထောက်ပံ့ပါ။
ဖြေရှင်းချက် -
တင်ထားသောဖိုင်သည်မှန်ကန်သော gd2 ပုံရိပ်ကိုသေချာအောင်လုပ်ပါ။
SERVERS တွင် GD စာကြည့်တိုက်ကိုဆာဗာတွင်ဖွင့်ထားပါ။ အထူးသဖြင့် GD2 format ကိုထောက်ပံ့သောဗားရှင်းကိုဖွင့်ခြင်းရှိမရှိစစ်ဆေးပါ။ GD စာကြည့်တိုက်၏အသေးစိတ်အချက်အလက်များကို Phpinfo မှတဆင့်ကြည့်ရှုနိုင်သည်။
ပြ Proble နာ 2 - ဖိုင်အမျိုးအစားပြောင်းလဲခြင်းမအောင်မြင်ပါ
တစ်ခါတစ်ရံတွင် ImagecreathrintGDGD2 သည် ပုံကို 0 င်သည်ဆိုလျှင်ပင် format ကိုပြောင်းလဲခြင်းလုပ်ငန်းစဉ်သည်ပျက်ကွက်နေဆဲဖြစ်သည်။ ၎င်းသည်များသောအားဖြင့်ပစ်မှတ်ထားဖိုင်လမ်းကြောင်းသို့မဟုတ်ခွင့်ပြုချက်ပြ issue နာများကြောင့်ဖြစ်သည်။
ဖြေရှင်းချက် -
ပစ်မှတ်လမ်းကြောင်းကိုအဆင်သင့်ဖြစ်အောင်လုပ်ပြီးဖိုင်တွင်ခွင့်ပြုချက်မရှိပါ။
ပိုမိုသိရှိလိုပါက PHP ၏အမှားမှတ်တမ်းကိုစစ်ဆေးပါ။
ပြ issue နာ 3: မှတ်ဉာဏ်ကန့်သတ်ချက်သည်ပျက်ကွက်မှုအားပေး၏
GD2 ဖိုင်များသည်တစ်ခါတစ်ရံအလွန်ကြီးမားပြီး loading သည့်အခါမှတ်ဥာဏ်ပိုလိုအပ်သည်။ အကယ်. သင်သည်မလုံလောက်သောမှတ်ဉာဏ်နှင့်ကြုံတွေ့ရပါက PHP ၏မှတ်ဉာဏ်ကန့်သတ်ချက်ကိုတိုးမြှင့်ဖို့ကြိုးစားနိုင်သည်။
ini_set('memory_limit', '256M'); // မှတ်ဉာဏ်ကန့်သတ်တိုးမြှင့်
မှတ်ဉာဏ်ကန့်သတ်ချက်ကိုတိုးမြှင့်ပြီးနောက်ထပ်မံကြိုးစားပါ, ၎င်းသည်များသောအားဖြင့်ဤပြ problem နာကိုဖြေရှင်းပေးသည်။
အထက်ဖော်ပြပါအချက်သည် uploaded gd2 ဖိုင်များကိုကိုင်တွယ်ရန် isaxecreat transfer ကိုအသုံးပြုခြင်းနှင့်ဘုံပြ problems နာများကိုခွဲခြမ်းစိတ်ဖြာရန်အခြေခံနည်းလမ်းဖြစ်သည်။ မှန်ကန်သောဖိုင်စစ်ဆေးခြင်း, ကျိုးကြောင်းဆီလျော်သောပုံရိပ်ပြောင်းလဲခြင်းနှင့်ပြုပြင်ခြင်းအဆင့်များနှင့်အချိန်မီအမှားစစ်ဆေးမှုများသည်သင့်အားပုံရိပ်စစ်ဆင်ရေးများကိုပိုမိုချောချောမွေ့မွေ့လုပ်ဆောင်ရန်ခွင့်ပြုနိုင်သည်။