PHP ၏ GD စာကြည့်တိုက်ကို image text processing အတွက် PHP ၏ GD စာကြည့်တိုက်ကိုအသုံးပြုသောအခါစာသားအရွယ်အစားသည်သတ်မှတ်ထားသောအကျယ်နှင့်မကိုက်ညီသောပြ problem နာကိုသင်မကြာခဏကြုံတွေ့ရတတ်သည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည်စာသားကိုပုံပေါ်ရှိအကျယ်တစ်ခုပေါ်တွင်အပြည့်အဝအသုံးချလိုပါကစာလုံးအရွယ်အစားကိုချိန်ညှိခြင်းသော့ချက်ဖြစ်သည်။ ဖောင့်အရေအတွက်နှင့်ပေါင်းစပ်ထားသော PHP တွင် ImageFontwidth () function သည်စာသားအကျယ်ကိုပိုမိုတွက်ချက်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။
စာသားအရွယ်အစားကိုအလိုအလျောက်ညှိခြင်း၏အကျိုးသက်ရောက်မှုကိုအောင်မြင်ရန် ImageFontwidth () နှင့် font နံပါတ်ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
ImageFontwidth (Int $ font) သည် pixel တစ်ခု၏အကျယ်ကို pixels in built-in font နံပါတ်ကိုသတ်မှတ်သည့် pixels ၏အကျယ်ကိုပြန်ပို့သည်။ GD စာကြည့်တိုက်တွင် Built-in fonts 5 ခု, နံပါတ် 1 မှ 5 နှင့်စာလုံးအရွယ်အစားသည် sequence ကိုတိုးပွားစေသည်။
ဖောင့်နံပါတ် | ဖောင့်အရွယ်အစား (pixels) | ဥပမာပြပါ |
---|---|---|
1 | 5x8 | အနည်းဆုံး font |
2 | 6x12 | သေးငယ်တဲ့ဖောင့် |
သုံး | 7x13 | အလတ်စား font |
4 | 8x15 | ပိုကြီးတဲ့ဖောင့် |
5 | 9x15 | အများဆုံး font |
ဖောင့်နံပါတ်များနှင့်အတူကျွန်ုပ်တို့သည် font width ကိုလျင်မြန်စွာရ။ စာသား၏စာပိုဒ်တစ်ခုလုံးကိုအကျယ်တွက်ချက်နိုင်သည်။
စာသား စာသား နှင့်အလိုရှိသောအများဆုံးအကျယ် Maxwidth ရှိသည့်ဆိုပါစို့။ စာသားအကျယ်ကို Maxwidth ထက်မကျော်ရန်နှင့်စာလုံးကြီးကြီးသာပိုမိုကောင်းမွန်သည်ဆိုပါစို့။
အောက်ပါအတိုင်းအဆင့်များမှာ -
အများဆုံးစာလုံးအရေအတွက်နှင့်စတင်ပါ (5) ။
စာသားအရှည်တစ်ခုလုံးကိုတွက်ချက်ရန် ImageFontwidth () ကိုစာသားအရှည်ဖြင့်မြှောက်ပါ။
အကယ်. အကျယ်သည် Maxwidth ထက်နည်းသည်သို့မဟုတ်ညီမျှလျှင်စာလုံးအရွယ်အစားကိုရွေးပါ။
အကယ်. အားလုံးသည်ကျော်လွန်နေပါကအနိမ့်ဆုံးဖောင့်ကိုရွေးချယ်ပါ။
ဤတွင်သင့်တော်သောစာလုံးအရွယ်အစားကိုမည်သို့အလိုအလျောက်ရွေးချယ်ပြီးရုပ်ပုံပေါ်တွင်စာသားဆွဲရမည်ကိုအပြည့်အဝဥပမာတစ်ခုရှိသည်။
<?php
// ဇာတ်ကောင်အကြောင်းအရာများ
$text = "အလိုအလျောက်စာလုံးအရွယ်အစားဥပမာ";
// မျှော်မှန်းအများဆုံးအကျယ်(တခု:pixels)
$maxWidth = 200;
// မှစာလုံးအရေအတွက်ကိုစမ်းကြည့်ပါ5ရောက်လာ1
$font = 5;
for ($i = 5; $i >= 1; $i--) {
$textWidth = imagefontwidth($i) * strlen($text);
if ($textWidth <= $maxWidth) {
$font = $i;
break;
}
}
// ပုံတစ်ပုံဖန်တီးပါ,အကျယ် $maxWidth,အမြင့် font အမြင့်ဖြစ်ပါတယ်
$fontHeight = imagefontheight($font);
$im = imagecreatetruecolor($maxWidth, $fontHeight + 10);
// အရောင်ဖြန့်ဖြူး
$bgColor = imagecolorallocate($im, 255, 255, 255); // အဖြူရောင်နောက်ခံ
$textColor = imagecolorallocate($im, 0, 0, 0); // အနက်ရောင်စာသား
// နောက်ခံဖြည့်ပါ
imagefilledrectangle($im, 0, 0, $maxWidth, $fontHeight + 10, $bgColor);
// စာသားစတင်တွက်ချက်Xညီညာစေ,ဗဟိုပြုနားလည်သဘောပေါက်
$textWidth = imagefontwidth($font) * strlen($text);
$x = ($maxWidth - $textWidth) / 2;
$y = 5;
// output စာသား
imagestring($im, $font, $x, $y, $text, $textColor);
// output ကိုပုံ
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
ဤနည်းလမ်းသည်စာသားအကျယ်ကိုလျင်မြန်စွာတွက်ချက်ရန်အတွက် GD စာကြည့်တိုက်၏ built-in ဖောင့်များ၏ပုံသဏ် finds ်ဌာန်းသည့်ဝိသေသလက္ခဏာများကိုအသုံးပြုသည်။
strlen () အင်္ဂလိပ်နှင့်တစ်ကိုယ်ရေစောင်ဇာတ်ကောင်များအတွက်သင့်တော်သည်။ အကယ်. ၎င်းတွင်တရုတ်နှင့်အခြား multi-byte အက္ခရာများပါ 0 င်ပါက MB_strlen () ကို အသုံးပြုရန်နှင့်တွက်ချက်မှုယုတ္တိဗေဒကိုချိန်ညှိရန်အကြံပြုပါသည်။
အကယ်. သင်သည် TTF ဖောင့်များကိုသုံးရန်လိုအပ်ပါကပိုမိုတိကျသောစာသားအကျယ်ရရှိရန် imagettfbox () ကို သုံးနိုင်သည်။
ဤဖြေရှင်းချက်သည်အလွယ်တကူနှင့်အကျိုးရှိသည်။