လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အခြားရွေးချယ်စရာ - ImageFontwidth function ကို agofontwidth function ကို agoTfbox () ပိုမိုတိကျမှန်ကန်သောအကျယ်အဝန်းရရှိရန်မည်သို့အစားထိုးရမည်နည်း။

အခြားရွေးချယ်စရာ - ImageFontwidth function ကို agofontwidth function ကို agoTfbox () ပိုမိုတိကျမှန်ကန်သောအကျယ်အဝန်းရရှိရန်မည်သို့အစားထိုးရမည်နည်း။

M66 2025-06-11

PHP တွင်ရုပ်ပုံစာသားကိုထုတ်ယူသောအခါလွယ်ကူသောအပြင်အဆင်နှင့်နေရာချခြင်းအတွက်စာသားအကျယ်ကိုရယူရန်လိုအပ်သည်။ အစဉ်အလာအရဖွံ့ဖြိုးရေးအနေဖြင့် developer များစွာသည် built-in font ၏ဇာတ်ကောင်အကျယ်ကိုရရန် imagefontwidth () function ကိုသုံးပါလိမ့်မည်။ သို့သော် imagefontwidth () built-in fonts (နှင့်ပုံသေအရွယ်အစား) ကိုသာကိုင်တွယ်နိုင်သည့်အတွက်၎င်း၏တိကျမှန်ကန်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုသည်အထူးသဖြင့် truetype ဖောင့်ကိုအသုံးပြုသောအခါအကန့်အတန့်အကန့်အသတ်ရှိသည်။

ဤဆောင်းပါးသည် ImageFontwidth () formpbox () function ကိုပိုမိုတိကျသောစာသားအကျယ်တိုင်းတာခြင်းနှင့်အစားထိုးရန်မည်သို့အစားထိုးရမည်, အထူးသဖြင့် TTF ဖောင့်များကိုလွတ်လပ်စွာအသုံးပြုသောအခြေအနေများအတွက်သင့်တော်သည်။


1 ။ ImageFontwidth ၏ကန့်သတ်ချက်များ ()

ImageFontwidth () function သည် built-in ဖောင့်အရွယ်အစား (1 မှ 5) အရွယ်အစားကိုသာလက်ခံပြီးစာလုံးပေါင်း၏အကျယ်များကိုသတ်မှတ်ထားသောဖောင့် (pixels) တွင်ပြန်ပို့သည်။ သို့သော်ဤလုပ်ဆောင်ချက်သည်မည်သည့်ကြိုး၏အလုံးစုံအကျယ်ကိုတိုင်းတာ။ မရပါ။

 <?php
// ရိုးရာအသုံးပြုမှု,အဖြစ် built-in ဖောင့်အရွယ်အစားကိုရယူပါ3ဇာတ်ကောင်၏ width
$charWidth = imagefontwidth(3);
echo "ဇာတ်ကောင်အကျယ်: $charWidth";
?>

ဤနည်းလမ်းသည်မည်သည့်ကြိုးသို့မဟုတ်စိတ်ကြိုက် font ကိုမဆိုအကျယ်ကိုတိကျစွာမရရှိနိုင်ပါ။


2. ပိုမိုတိကျသောစာသားအကျယ်ရရန် imagettfbobbox () ကိုသုံးပါ

Truetype ဖောင့်များအတွက် PHP မှပေးသော function ကို imagettfbox () သည် function တစ်ခုဖြစ်သည်။ ၎င်းသည်ပုံပေါ်ရှိပေးထားသောစာသား၏သွဇာညောင်းသော box ကိုညွှန်ပြနေသော array ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤကိုသွဒီနိတ်များကိုတွက်ချက်ခြင်းအားဖြင့်စာသား၏အကျယ်နှင့်အမြင့်ကိုရရှိနိုင်သည်။

function ရှေ့ပြေးပုံစံ:

 array imagettfbbox(float $size, float $angle, string $fontfile, string $text)
  • $ အရွယ်အစား : ဖောင့်အရွယ်အစား

  • $ angle : ထောင့် (များသောအားဖြင့် 0)

  • $ fontfile : font file လမ်းကြောင်း (.ttf)

  • $ စာသား - တိုင်းတာရန်လိုအပ်သည့်စာသား

Value ကိုပြန်သွားပါ

စာသား box ရဲ့ဒေါင်လိုက်လေးမျိုးကိုကိုယ်စားပြုတဲ့ကိန်း 8 ခုကိုပြန်ပို့သည်။

 0 => lower left X
1 => lower left Y
2 => lower right X
3 => lower right Y
4 => upper right X
5 => upper right Y
6 => upper left X
7 => upper left Y

3 ။ စာသားအကျယ်ကိုတွက်ချက်ရန်နမူနာကုဒ်

အောက်ပါဥပမာသည်စာသားအကျယ်ကိုတိကျစွာတိုင်းတာရန် imagefontwidth () အစား imagettfbobbox () ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။

 <?php
// ဇာတ်ကောင်အကြောင်းအရာများ
$text = "Hello, ကမ်ာဘ!";

// အရွယ်အစား
$fontSize = 16;

// ထောင့်
$angle = 0;

// Font ဖိုင်လမ်းကြောင်း(ဖောင့်ဖိုင်သည်ဆာဗာပေါ်တွင်တည်ရှိသည်ဟုယူဆပါ)
$fontFile = 'm66.net/fonts/arial.ttf';

// စာသား box ကို array ကိုရယူပါ
$bbox = imagettfbbox($fontSize, $angle, $fontFile, $text);

// အကျယ်တွက်ချက်
// ညာဘက်အောက်ထောင့်X - ဘယ်ဘက်ထောင့်X
$textWidth = abs($bbox[2] - $bbox[0]);

echo "စာသားအကျယ်ဖြစ်ပါတယ်: " . $textWidth . " pixels";
?>

4 ။ စာသားအကျယ်အခြေအနေအပေါ်အခြေခံပြီး dynamic centering display ကိုဥပမာ

စာသားအကျယ်ကိုရရန်ကျွန်ုပ်တို့သည်စာသားအကျယ်ကိုရယူရန်အတွက်ပထမ ဦး ဆုံး cancesth ကို အသုံးပြု. စတင်သည့်အချက်ကိုပထမ ဦး စွာ အသုံးပြု. စတင်သည့်ပုံကိုတွက်ချက်ရန်လိုသည်ဆိုပါစို့။

 <?php
// ပတ်တူဖန်တီးပါ
$imgWidth = 300;
$imgHeight = 50;
$image = imagecreatetruecolor($imgWidth, $imgHeight);

// အရောင်အဓိပ္ပါယ်ဖွင့်ဆိုချက်
$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);

// နောက်ခံဖြည့်ပါ
imagefill($image, 0, 0, $bgColor);

// စာသားနှင့် font parameters တွေကို
$text = "Hello, ကမ်ာဘ!";
$fontSize = 20;
$angle = 0;
$fontFile = 'm66.net/fonts/arial.ttf';

// စာသားအကျယ်ကိုရယူပါ
$bbox = imagettfbbox($fontSize, $angle, $fontFile, $text);
$textWidth = abs($bbox[2] - $bbox[0]);
$textHeight = abs($bbox[5] - $bbox[1]);

// ရေတွက်Xရိုးတံ၏အချက်စတင်,ဗဟိုအဆင့်ကိုအောင်မြင်ရန်
$x = ($imgWidth - $textWidth) / 2;

// ရေတွက်Yရိုးတံ၏အချက်စတင်,ဒေါင်လိုက်ဗဟိုပြုသဘောပေါက်နားလည်သဘောပေါက်(မှတ်သား imagettftext အခြေခံအပေါ်အခြေခံသည်)
$y = ($imgHeight + $textHeight) / 2;

// စာသားဆွဲပါ
imagettftext($image, $fontSize, $angle, $x, $y, $textColor, $fontFile, $text);

// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

5 ။ အကျဉ်းချုပ်

  • ImageFontwidth () သည် built-in ဖောင့်များအတွက်သာသင့်တော်ပြီးရိုးရှင်းသောလုပ်ဆောင်ချက်များရှိသည်။

  • imagettfbox () သည် TTF ဖောင့်၏စာသားနယ်နိမိတ်အရွယ်အစားကိုတိကျစွာရရှိပြီးစာသားအကျယ်ကိုပိုမိုတိကျစွာတိုင်းတာနိုင်သည်။

  • Igeettfbox () ကိုအသုံးပြုခြင်းသည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်သောစာသား positioning နှင့် typtograpings လိုအပ်ချက်များကိုရရှိနိုင်ပါသည်, အထူးသဖြင့်စိတ်ကြိုက်စာလုံးများနှင့်ရှုပ်ထွေးသောစာသားများအတွက်သင့်တော်သည်။

ဤဆောင်းပါးတွင်မိတ်ဆက်ပေးသောဥပမာများမှတဆင့်ပုံရိပ်စကားလုံးအပြောင်းအလဲအတွက်တိကျမှန်ကန်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုတိုးတက်စေရန် imagefontwidth () ကို အလွယ်တကူ အစားထိုးနိုင်သည်။