PHP Image Processing Library Library Library GD တွင် imagefontwidth () function ကိုအသုံးပြုသည်။ ၎င်း၏ပုံမှန်အသုံးပြုမှုသည် font နံပါတ် (1-5) တွင် pien ကိုဖြတ်ပြီးစာလုံး၏ဇာတ်ကောင်၏အကျယ် (pixel အရေအတွက်) ကိုပြန်ပို့ပါ။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်လူအများစုက Impressontwidth () မှပြန်လည်ရောက်ရှိသည့်အကျယ်အ 0 န်းသည်၎င်းတို့၏မျှော်လင့်ထားသည့်ဇာတ်ကောင်များ၏ width နှင့်မကိုက်ညီပါကပြ the နာကိုကြုံတွေ့ရလိမ့်မည်။
ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်ရွက်မှု၏လုပ်ငန်းခွင်တွင်းတူးဖော်ခြင်း,
<?php
// built-in ဖောင့်နံပါတ်ကိုသုံးပါ1,ဇာတ်ကောင်အကျယ်ကိုရယူပါ
$font = 1;
$width = imagefontwidth($font);
echo "Font $font character width is $width pixels.";
?>
GD စာကြည့်တိုက်ရှိ built-in ဖောင့်များသည်နံပါတ် 1 မှ 5 ဖြစ်ပြီးအရွယ်အစားအမျိုးမျိုးနှင့်စတိုင်လ်များ၏ဖောင့်များနှင့်သက်ဆိုင်သည်။ ImageFontwidth () စာလုံးအားလုံးသည် အက္ခရာများအားလုံး၏အကျယ်အ 0 န်းအတွက်သတ်မှတ်ထားသောတန်ဖိုးကို ပြန်ပို့သည်။ ဒီတော့ဒီအကျယ်ကစာလုံးတစ်လုံးစီရဲ့စံသတ်မှတ်ချက်အကျယ်အ 0 န်းဖြစ်ပါတယ်။
ImageFontwidth () gd ၏ built-in fonts အတွက်သာအသုံးပြုနိုင်သည်။ အခြား font အရင်းအမြစ်များကိုဖြတ်သန်းခြင်းသည်မမှန်ကန်ပါ။ သင်အသုံးပြုသောစိတ်ကြိုက်ဖောင့်၏ဇာတ်ကောင်အကျယ်ကိုပြန်မပေးပါ။
// မှားယွင်းသောအသုံးပြုမှု,စိတ်ကြိုက် font font file အရင်းအမြစ်များကိုဖြတ်သန်းခြင်းသည်တိကျသောရလဒ်များကိုဖြစ်ပေါ်စေလိမ့်မည်
$fontPath = '/path/to/custom/font.ttf';
$fontSize = 12;
$bbox = imagettfbbox($fontSize, 0, $fontPath, "A");
$width = imagefontwidth($fontPath); // မမှန်ကန်သောအသုံးပြုမှု
အကယ် . သင်သည် TTF ဖောင့်များကိုအသုံးပြုနေပါက,
ImageFontwidth () စာလုံးတစ်လုံးတည်း၏အကျယ်၏ပုံရိပ်တန်ဖိုးကိုပြန်ပို့ပေးပြီး,
built-in font နံပါတ်သည် 1-5 သာရှိနိုင်ပြီးအခြားနံပါတ်များသည်မှားယွင်းသောရလဒ်များဖြစ်ပေါ်စေနိုင်သည်။
အကယ်. သင်သည် built-in ဖောင့်များကိုအသုံးပြုနေပါက imagefontwidth () ကို အသုံးပြု. အကျယ်ကိုပြန်လည်ရောက်ရှိသည်။
<?php
$font = 3;
$width = imagefontwidth($font);
$height = imagefontheight($font);
echo "Font $font character width: $width px\n";
echo "Font $font character height: $height px\n";
?>
အကယ်. ၎င်းသည်စိတ်ကြိုက်ဖောင့် (TTF) ဆိုပါက EgageStfBBox () ကို အသုံးပြု. တွက်ချက်သင့်သည်။
<?php
$text = "စမ်းသပ်မှုA";
$fontFile = 'm66.net/fonts/arial.ttf'; // ဒီမှာအသုံးပြုခဲ့သည် m66.net ဒိုမိန်းအမည်သည်စစ်မှန်သောလမ်းကြောင်းကိုအစားထိုးသည်
$fontSize = 14;
$angle = 0;
$bbox = imagettfbbox($fontSize, $angle, $fontFile, $text);
$width = abs($bbox[2] - $bbox[0]);
$height = abs($bbox[7] - $bbox[1]);
echo "Text width: $width px\n";
echo "Text height: $height px\n";
?>
ဤတွင် IgejtfbBox () စာသား border ၏ထောင့်အချက်လေးထောင့်ကွက်များ၏သွဒီနိတ်များကိုပြန်ပို့ပေးပြီးအကျယ်နှင့်အမြင့်များကိုတွက်ချက်ခြင်းဖြင့်ရရှိနိုင်သည်။
Confirm font type ကိုအတည်ပြုပါ ။ သင် built-in စာလုံးများသို့မဟုတ်စိတ်ကြိုက်ဖောင့်များကိုအသုံးပြုနေသည်ကို ဦး စွာအတည်ပြုပါ။
ကွဲပြားခြားနားသောဖောင့်နံပါတ်များကိုစမ်းသပ်ပါ ။
အမှန်တကယ်အကျယ်ကိုပုံနှိပ်ပါ - imagefontwidth () သို့မဟုတ် imagettfbobbox () သို့မဟုတ် imagettfbox () သို့မဟုတ် command line တွင် face or command line တွင် width print print print print print print print print print forep for mind or for print လုပ်ပါ။
Encoding နှင့်ဇာတ်ကောင်အမျိုးအစားများကိုသတိပြုပါ ။ Multi-byte စာလုံးများနှင့်တရုတ်အကျယ်သည် built-in font function များကိုအသုံးပြုခြင်းအတွက်မသင့်တော်ပါ။
Image Display နှင့်စမ်းသပ်ခြင်း - ပုံပေါ်ရှိစာသားကိုပုံဆွဲပြီးနောက်, width မျှော်လင့်ထားသည့်အတိုင်းကြည့်ရှုရန်ပုံကိုထုတ်ယူပါ။
<?php
header('Content-Type: image/png');
$img = imagecreatetruecolor(300, 100);
$bgColor = imagecolorallocate($img, 255, 255, 255);
$txtColor = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $bgColor);
$font = 3;
$text = "Hello";
$charWidth = imagefontwidth($font);
$totalWidth = $charWidth * strlen($text);
imagestring($img, $font, (300 - $totalWidth) / 2, 40, $text, $txtColor);
imagestring($img, 1, 10, 10, "Char width: $charWidth px", $txtColor);
imagepng($img);
imagedestroy($img);
?>
ဤကုဒ်သည် built-in ဖောင့်နှင့်အတူ string ကိုဆွဲခြင်းနှင့်ဇာတ်ကောင်အကျယ်ကိုတွက်ချက်။
ImageFontwidth ၏လျှောက်လွှာကိုနားလည်ခြင်းနှင့် isolortfbox () ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဇာတ်ကောင်တွက်ချက်မှုအမှားများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးပုံစာသားပုံ၏တိကျမှန်ကန်မှုကိုကျွန်ုပ်တို့ပိုမိုရှောင်ရှားနိုင်သည်။