PHP တွင် Imppontwidth () တွင်ရုပ်ပုံများကို စာလုံး တစ်လုံးဖြင့်ရိုက်ကူးရန်အသုံးပြုသော function တစ်ခုဖြစ်သည့် function တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် imagefontwidth () function ကိုအသုံးပြုသောအခါအာရုံစူးစိုက်မှုပေးရန်လိုအပ်သည့်အရာများနှင့်ဘုံပြ issues နာများကိုမိတ်ဆက်ပေးလိမ့်မည်။
ImageFontwidth (INT $ font): Int
Parameter $ font သည်ဖောင့်၏အရွယ်အစားဖြစ်ပြီးတန်ဖိုးသည် 1 မှ 5 ဖြစ်သည်။ PHP တွင်ပါ 0 င်သောဖောင့်ငါးခုကိုကိုယ်စားပြုသည်။
Return Value သည် font ထဲတွင်တစ်ခုတည်းသောအက်ခရာတစ်ခု၏အကျယ်ဖြစ်ပြီးယူနစ်သည် pixel ဖြစ်သည်။
နမူနာကုဒ်:
<?php
$font = 3; // စာလုံးအရွယ်အစားကိုရွေးချယ်ပါ
$charWidth = imagefontwidth($font);
echo "Font width is: " . $charWidth;
?>
ImageFontwidth () PHP (1-5) တွင်တည်ဆောက်ထားသောဖောင့်ငါးခုအတွက်သာအသုံးပြုနိုင်ပြီး custom fonts သို့မဟုတ် truetype စာလုံးများအတွက် အသုံးပြု. မရပါ (truetpe fonts) အတွက်မသုံးနိုင်ပါ။
အကယ်. သင်သည် Embettttext () ကို စာသားကိုအသုံးပြုရန်အသုံးပြုပါက imagefontwidth မဟုတ်ဘဲစာသားအရွယ်အစားကိုရရှိရန် imagettfbobbox () function ကိုသုံးရန်လိုအပ်သည်။
built-in ဖောင့်သည် monospace ဖောင့်တစ်ခုဖြစ်ပြီးဇာတ်ကောင်တစ် ဦး စီသည်ပုံ သေ အကျယ်ရှိသည်။ အကယ်. စာသားတွင် multi-byte အက္ခရာများပါ 0 င်ပါက,
ဥပမာ -
<?php
$font = 4;
$charWidth = imagefontwidth($font);
$text = "Hello";
$textWidth = strlen($text) * $charWidth;
echo "Text width is: " . $textWidth;
?>
တရုတ်စာလုံးများအတွက် built-in ဖောင့်သည် Byti-byte Chinese ကိုမပံ့ပိုးသောကြောင့်, အရှည်ကို strlen ( ) နှင့်တွက်ချက်ရန်အမှားတစ်ခုရှိလိမ့်မည်။
အကယ်. စာသားသည်တရုတ် (သို့) အခြားသို့မဟုတ်အခြား multibyte ဇာတ်ကောင်များဖြစ်သော strlen () ကို အသုံးပြု. စာလုံးများအစား bytes အရေအတွက်ကိုတွက်ချက်လိမ့်မည်။
ဥပမာအားဖြင့် MB_Strlen () ကို အသုံးပြုရန်အကြံပြုသည်။
<?php
$text = "တရုတ်စမ်းသပ်မှု";
$font = 3;
$charWidth = imagefontwidth($font);
$textWidth = mb_strlen($text, 'UTF-8') * $charWidth;
echo "Text width is: " . $textWidth;
?>
သို့သော် Built-in ဖောင့်သည်တရုတ်ကိုမှန်ကန်စွာမပြနိုင်ကြောင်းသတိပြုရန်အရေးကြီးသည်။ ထို့ကြောင့် Igeetttext () ကို အသုံးပြုရန်အကြံပြုသည်။
imagefontwidth () font sizes 1 မှ 5 မှသာထောက်ပံ့သည်။ အကွာအဝေးထဲကအမှားတစ်ခုသို့မဟုတ်တိရလဒ်ပြန်ပို့ပါလိမ့်မယ်။
built-in ဖောင့်သည်တရုတ်ကိုမပေးနိူင်ပါ ။ ဖြေရှင်းချက် -
တရုတ်ကိုထောက်ပံ့သော TTF ဖောင့်များကိုဖွင့်ရန် agouetttext () function ကိုသုံးပါ။
text နယ်နိမိတ်အရွယ်အစားကိုရရန် imagettfbobbox () ကို သုံးပါ, အကျယ်နှင့်အမြင့်ကိုတွက်ချက်ပါ။
ဥပမာ -
<?php
$im = imagecreatetruecolor(200, 50);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 200, 50, $white);
$fontfile = 'm66.net/fonts/simhei.ttf'; // ဒီမှာဥပမာလမ်းကြောင်းဖြစ်ပါတယ် m66.net ဒိုမိန်းအမည်အစားထိုး
$text = "တရုတ်စမ်းသပ်မှု";
$fontsize = 20;
$bbox = imagettfbbox($fontsize, 0, $fontfile, $text);
$textWidth = $bbox[2] - $bbox[0];
imagettftext($im, $fontsize, 0, 10, 30, $black, $fontfile, $text);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
ImageFontwidth () ကို အသုံးပြု. အကျယ်ကိုတွက်ချက်သည့်အခါစာလုံးကိုတွက်ချက်သောအခါစာလုံးအ 0 န်းသို့မဟုတ်အထူးဇာတ်ကောင်အကျယ်များကိုလျစ်လျူရှုခြင်းခံရသည်။ ဤအချိန်တွင်သင်ကြိုးစားနိုင်သည် -
အကျယ်ကိုကြိုတင်တွက်ချက်ပါ။ သင့်လျော်သောအနားသတ်ထားခဲ့ပါ။
TTF ဖောင့်များအတွက်ပိုမိုတိကျသောတိုင်းတာခြင်းနည်းလမ်းများ (ဥပမာ ttf ဖောင့ ် များအတွက်) ကိုသုံးပါ။
စီister | ဥပမာပြပါ |
---|---|
သာ built-in ဖောင့်များကိုထောက်ပံ့သည် | စိတ်ကြိုက် fonts သို့မဟုတ် ttf ဖောင့်များအတွက်မရနိုင်ပါ |
ပုံသေဇာတ်ကောင်အကျယ် | monospace ဖောင့်အတွက်သင့်တော်သော, Multibyte ဇာတ်ကောင်အကျယ်ကိုအတိအကျတွက်ချက်လို့မရပါဘူး |
တရုတ်ထောက်ခံမှုကန့်သတ် | Built-in ဖော င့ ်များသည်တရုတ်ကိုမထောက်ပံ့ပါ, |
အရှည်တွက်ချက်မှုများအတွက် encoding ကိုအာရုံစိုက်ပါ | တရုတ် MB_strlen ကိုသုံးသင့်သည် () |
ယေဘူယျအားဖြင့် ImageFontwidth () သည်ရိုးရှင်းသောအင်္ဂလိပ်စာ၏ width တွက်ချက်မှုများကိုမြန်ဆန်စွာလုပ်ဆောင်ရန်အတွက်သင့်လျော်သောရိုးရိုး function တစ်ခုဖြစ်သော်လည်းတရုတ်သို့မဟုတ်ရှုပ်ထွေးသောဖောင့်များအတွက်ပိုမိုအားကောင်းသည့် truetype font producting function ကိုအသုံးပြုရန်အကြံပြုသည်။