PHP ၏ GD စာကြည့်တိုက်ကိုဓာတ်ပုံပြုပြင်ခြင်းအတွက် PHP ၏ GD စာကြည့် တိုက်ကိုအသုံးပြုသောအခါရုပ်ပုံများကိုစာသား positioning နှင့် typtograping အတွက် built-in ဖောင့်များကိုရရှိရန်အသုံးပြုသည်။ သို့သော် Developer တော်တော်များများက imagefontwidth () function ကို function) မှ font function ကိုပြန်ရောက်သည့် font width သည်တစ်ခါတစ်ရံတွင်တိကျသောတိကျမှုမရှိဟုတွေ့ရှိရသည်။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏အကြောင်းရင်းများကိုနက်နက်နဲနဲခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ထိရောက်သောဖြေရှင်းနည်းများပေးလိမ့်မည်။
ImageFontwidth () function သည် integer parameter (1 မှ 5) ကိုကိုယ်စားပြုသော integer parameter တစ်ခုယူပြီးစာလုံး၏အကျယ်ကို pixels တွင်ဖော်ပြထားသည်။ ဤထည့်သွင်းထားသောဖောင့်များကို PHPG GD စာကြည့်တိုက်တွင်တည်ဆောက်ထားပြီး font style ကို fix လုပ်ထားပြီးစိတ်ကြိုက်မဖြစ်နိုင်ပါ။
<?php
$font = 3; // အရွယ်အစား,အကျယ်ည1~5
$width = imagefontwidth($font);
echo "font width ဖြစ်ပါတယ်:" . $width;
?>
function သည်စာလုံးအ 0 န်း၏ပျမ်းမျှအကျယ်, များသောအားဖြင့် fixed width character ၏ pixels အရေအတွက်ကိုများသောအားဖြင့်ပြန်ပို့သည်။
built-in ဖောင့်သည်ပုံသေသောအကျယ်ဖောင့်သော်လည်းအချို့သောဇာတ်ကောင်များသည်သူတို့၏အမှန်တကယ် pixels တွင်တသမတ်တည်းကိုက်ညီမှုမရှိပါ။ ဥပမာအားဖြင့်အာကာသအက္ခရာများသို့မဟုတ်အထူးသင်္ကေတများကိုပိုမိုကျစ်လစ်စေနိုင်သည် ။
ImageFontwidth () တွင် built-in font sizes ငါးခုသာထောက်ပံ့ပေးပြီးထုံးစံစာလုံးအရွယ်အစားများကိုမထောက်ပံ့ပါ။ အကယ်. သင်သည်စိတ်ကြိုက် font ကိုသုံးပါက Function ကိုအသုံးပြုပါက function သည်အကျယ်အတိအကျကိုတိုင်းတာ။ မရနိုင်ပါ။
ImageFontwidth () ဇာတ်ကောင်အကွာအဝေး, တရုတ်သို့မဟုတ် Byti-byte ဇာတ်ကောင်များ၏အကျယ်ကွဲပြားခြားနားမှုများမည်သို့ပင်ရှိပါစေဇာတ်ကောင်အကျယ်အ0ိပ်တခုကိုရရှိသည်။ အကယ်. သင်သည် Multibyte စာလုံးများသို့မဟုတ်ကျယ်ဝန်းသောဖောင့်များကိုတွက်ချက်ရန်၎င်းကိုအသုံးပြုပါကအမှားအယွင်းများဖြစ်ပေါ်လိမ့်မည်။
အကယ်. သင်သည် image ကိုစာလုံးအရွယ်အစားကိုချိန်ကိုက်ခြင်းမရှိဘဲ 0 မ်းနည်းမိပါက,
စိတ်ကြိုက်ဖောင့်များနှင့်အရွယ်အစားအတွက်, imagettfbox () function ကိုအကြံပြုသည်။ ၎င်းသည်စာသား၏ထောင့်ညှိနှိုင်းမှုလေးခုကိုပြန်လည်ရရှိစေပြီးစာသားအကျယ်အ 0 န်းအတိအကျကိုသွဒီနိတ်ကွဲပြားမှုကိုတွက်ချက်ခြင်းဖြင့်ရရှိနိုင်သည်။
<?php
$text = "စာသားစမ်းသပ်";
$fontFile = "/path/to/font.ttf";
$fontSize = 16;
// စာသား box ကို box ကိုရယူပါ
$bbox = imagettfbbox($fontSize, 0, $fontFile, $text);
$width = abs($bbox[2] - $bbox[0]);
echo "စာသားအကျယ်ဖြစ်ပါတယ်:" . $width;
?>
built-in ဖောင့်များသည်အဓိကအားဖြင့် byte အင်္ဂလိပ်အက္ခရာများအတွက်အဓိကအားဖြင့်သင့်တော်သည်။ Multi-byte အက္ခရာများအတွက်တရုတ်ကဲ့သို့သောစာလုံးများအတွက် truetype ဖောင့်များကို truetype ဖောင့ ် များကိုစာသားဆွဲရန်စာသားဆွဲရန် imagettfbox () ကို သုံးရန်အကြံပြုသည်။
built-in ဖောင့်များနှင့် width အမှားများအတွက်အနိမ့်သည်းခံစိတ်ကိုအသုံးပြုသောအခါသင်ကိုယ်တိုင်ဇာတ်ကောင်များပုံဆွဲခြင်း၏စသည့်အနေအထားကိုကိုယ်တိုင်ကိုယ်ကျချိန်ညှိပြီးမတူညီသောစာလုံးများကိုတိုင်းတာနိုင်သည်။
ချုံ့ခြင်းဖြင့်ဖြစ်ပေါ်လာသောအမြင်အာရုံအမှားများကိုရှောင်ရှားရန်ပုံ၏စကေးအချိုးနှင့် font size ကိုထပ်တူပြုခြင်းကိုသေချာစေရန်သေချာစေပါ။
အနှစ်ချုပ်အနေဖြင့် ImageFontwidth () function သည် built-in fonts fonts များအတွက်သာသင့်လျော်သည်။ text layout ၏တိကျမှန်ကန်မှုကိုသေချာစေရန် True Width ကိုတွက်ချက်ရန် imagettfbobbox () ကို အသုံးပြုရန်အကြံပြုသည်။