PHP တွင် ImageFontwidth function ကို built-in font ၏အက်ခရာအကျယ်ကိုရရန်အသုံးပြုသည်။ ၎င်းသည်ပုံမှန်ဖောင့်စုဆောင်းမှု၏ဇာတ်ကောင်အကျယ်ကိုပြန်လည်ရောက်ရှိစေပြီး GD စာကြည့်တိုက်ကို အသုံးပြု. စာသားပုံဆွဲသောအခါစာသားအကျယ်နှင့် layout ကိုတွက်ချက်ရန်ကျွန်ုပ်တို့အတွက်ပိုမိုလွယ်ကူစေသည်။ သို့သော် ပုံfutwidthသည် font enth ်ဌာန်နှင့်အတူ built-in fonts များကိုသာထောက်ပံ့သည်။
ဤဆောင်းပါးသည် ImpactTwidth ၏လုပ်ဆောင်မှုကိုတိုးချဲ့ခြင်းသို့မဟုတ်စိတ်ကြိုက်ပြုလုပ်နိုင်ခြင်းအားဖြင့် ပိုမို. အပြည်ပြည်ဆိုင်ရာဇာတ်လမ်းအကျယ်အတွက်အထောက်အပံ့များရရှိရန်မည်သို့မြှင့်တင်ရန်နှင့်စာသားပြန်ဆိုခြင်း၏တိကျမှန်ကန်မှုနှင့်ဗေဒတိုးတက်လာသည်။
ImageFontwidth (INT $ font): Int
GD built-in font နံပါတ်များကိုသာလက်ခံပါ (1 မှ 5)
ဇာတ်ကောင်များ၏အမှန်တကယ်အကြောင်းအရာကိုလျစ်လျူရှုထားသည့်ပုံသေအကျယ်ကိုပြန်ပို့သည်
Multi-byte အက္ခရာများကိုအကျယ်တွက်ချက်ခြင်းကိုမထောက်ပံ့နိုင်ပါ။
ဥပမာအားဖြင့်:
<?php
$font = 5;
$width = imagefontwidth($font);
echo "Font $font width is $width pixels.";
?>
အက္ခရာများသည်အင်္ဂလိပ်သို့မဟုတ်တရုတ်လူမျိုးများဖြစ်လျှင် ပုံfrontwidth မှပြန်လာသော width သည်အတူတူပင်ဖြစ်သည်, ၎င်းသည် layout layout ကိုရှုပ်ထွေးစေသည်။
ပိုမိုနိုင်ငံတကာဇာတ်ကောင်များ၏အကျယ်ကိုထောကျပံ့ရန် imagefontwidth ၏စင်ကြယ်သောမှီခိုမှုကိုကျော်လွှားနိုင်ပြီးအောက်ပါဖြေရှင်းနည်းများကိုထည့်သွင်းစဉ်းစားနိုင်သည် -
ImgetStfbBox သည် သတ်မှတ်ထားသော truetype font file ရှိကြိုးသေတ္တာအရွယ်အစားကိုတိုင်းတာနိုင်သည်။ ၎င်းသည်ဘာသာစကားမျိုးစုံသောစာသားများအတွက်သင့်တော်ပြီး Multi-byte encoding ကိုထောက်ပံ့သည်။
ဥပမာ -
<?php
$fontFile = 'm66.net/fonts/YourFont.ttf'; // စိတ်ကြိုက် font လမ်းကြောင်း
$text = "မင်္ဂလာပါ,world!";
$fontSize = 16;
$bbox = imagettfbbox($fontSize, 0, $fontFile, $text);
$width = abs($bbox[2] - $bbox[0]);
echo "Text width is $width pixels.";
?>
၎င်းသည်စာသားအကျယ်ကိုတိကျစွာရယူပြီး ImageFontwidth က န့်သတ်ချက်များကိုရှောင်ရှားရန်ခွင့်ပြုသည်။
imagefontwidth call interface နှင့်သဟဇာတဖြစ်ရန်လိုအပ်ပါကသင်နှင့်သက်ဆိုင်သောအကျယ်ကို Encoding Range ၏အဆိုအရသက်ဆိုင်ရာအကျယ်ကိုပြန်လည်ရောက်ရှိစေသည့်ထုံးစံ function ကိုဖန်တီးနိုင်သည်။
ဥပမာ -
<?php
function extendedImageFontWidth(int $font, string $char): int {
// built-in ဖောင့်စံအကျယ်အကျယ်
$baseWidth = imagefontwidth($font);
// Unicodeအပြည့်အဝအကျယ်ဇာတ်ကောင်ဆုံးဖြတ်ရန် encoding
$ord = mb_ord($char, 'UTF-8');
// ဘုံတရုတ်、ဂျပန်、ကိုရီးယားဇာတ်ကောင်အကြမ်းအားဖြင့်အကွာအဝေး
if (($ord >= 0x4E00 && $ord <= 0x9FFF) || // CJK Unified Ideographs
($ord >= 0x3000 && $ord <= 0x303F) || // CJK Symbols and Punctuation
($ord >= 0xFF00 && $ord <= 0xFFEF)) { // Halfwidth and Fullwidth Forms
return $baseWidth * 2; // အပြည့်အဝအကျယ်ဇာတ်ကောင်နှစ်ကြိမ်ဖြစ်ပါတယ်ဟုယူဆ
}
return $baseWidth; // ဝက်အကျယ်ဇာတ်ကောင်
}
// အသုံးပြုမှုဥပမာ
$font = 5;
$char1 = "A";
$char2 = "ခင်ဗျားတို့";
echo extendedImageFontWidth($font, $char1) . "\n"; // ဥပမာအားဖြင့်ပြန်လာပါ 9
echo extendedImageFontWidth($font, $char2) . "\n"; // ပြန်လာ 18
?>
ဤနည်းလမ်းသည်မလုံလောက်ပေမဲ့ရိုးရှင်းမှုနှင့်အပြည်ပြည်ဆိုင်ရာအထောက်အပံ့အချို့ကိုထည့်သွင်းစဉ်းစားသည်။
အထက်ပါမြေပုံရေးဆွဲခြင်းအစီအစဉ်အပေါ် အခြေခံ. စာသား၏စာပိုဒ်တစ်ခုလုံး၏အကျယ်ကိုအတိအကျတွက်ချက်ရန်ဖြစ်နိုင်သည်။
<?php
function extendedImageFontWidth(int $font, string $char): int {
$baseWidth = imagefontwidth($font);
$ord = mb_ord($char, 'UTF-8');
if (($ord >= 0x4E00 && $ord <= 0x9FFF) ||
($ord >= 0x3000 && $ord <= 0x303F) ||
($ord >= 0xFF00 && $ord <= 0xFFEF)) {
return $baseWidth * 2;
}
return $baseWidth;
}
function getTextWidth(int $font, string $text): int {
$width = 0;
$len = mb_strlen($text, 'UTF-8');
for ($i = 0; $i < $len; $i++) {
$char = mb_substr($text, $i, 1, 'UTF-8');
$width += extendedImageFontWidth($font, $char);
}
return $width;
}
// နမူနာ
$font = 5;
$text = "Hello,ကမ်ာဘ!";
echo "Text width: " . getTextWidth($font, $text) . " pixels.";
?>
ImageFontwidth သည် fixed width built-in fonts များအတွက်သင့်တော်ပြီး Multibyte International ဇာတ်ကောင်အတိအကျကိုမထောက်ပံ့နိုင်ပါ။
Igeettfbox နှင့် Custom Logic ကိုပေါင်းစပ်ခြင်းအားဖြင့်တိကျသောစာလုံးပေါင်းသတင်းအချက်အလက်များကိုပိုမိုတိကျမှန်ကန်သောသတင်းအချက်အလက်များကိုရယူပြီးဘာသာစကားမျိုးစုံအထောက်အပံ့ကိုရယူနိုင်ပါသည်။
ဇာတ်ကောင်အကျယ်မြေပုံရေးဆွဲခြင်းမှတစ်ဆင့်လက်ရှိအခြေအနေများအတွက်တရုတ်နှင့်ဂျပန်အက္ခရာများကိုတရုတ်နှင့်ဂျပန်စာလုံးများ၏အနံကိုအကောင်အထည်ဖော်ရန်အတွက်ရှိပြီးသားကုဒ်ကိုတိုးချဲ့နိုင်သည်။
လက်တွေ့ကျသောအပလီကေးရှင်းများတွင် TrueType ဖောင့်နှင့် isionstfbbox ကိုအသုံးပြုရန် Truetype ဖောင့်နှင့် isionstfbbox ကိုစာသားပြန်ဆိုခြင်းအကျိုးသက်ရောက်မှုကိုတိုးတက်စေရန်အတွက်အကျယ်ကိုတိုင်းတာရန်အသုံးပြုရန်အကြံပြုပါသည်။