PHP တွင်ရုပ်ပုံစာသားကိုထုတ်ယူသောအခါလွယ်ကူသောအပြင်အဆင်နှင့်နေရာချခြင်းအတွက်စာသားအကျယ်ကိုရယူရန်လိုအပ်သည်။ အစဉ်အလာအရဖွံ့ဖြိုးရေးအနေဖြင့် developer များစွာသည် built-in font ၏ဇာတ်ကောင်အကျယ်ကိုရရန် imagefontwidth () function ကိုသုံးပါလိမ့်မည်။ သို့သော် imagefontwidth () built-in fonts (နှင့်ပုံသေအရွယ်အစား) ကိုသာကိုင်တွယ်နိုင်သည့်အတွက်၎င်း၏တိကျမှန်ကန်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုသည်အထူးသဖြင့် truetype ဖောင့်ကိုအသုံးပြုသောအခါအကန့်အတန့်အကန့်အသတ်ရှိသည်။
ဤဆောင်းပါးသည် ImageFontwidth () formpbox () function ကိုပိုမိုတိကျသောစာသားအကျယ်တိုင်းတာခြင်းနှင့်အစားထိုးရန်မည်သို့အစားထိုးရမည်, အထူးသဖြင့် TTF ဖောင့်များကိုလွတ်လပ်စွာအသုံးပြုသောအခြေအနေများအတွက်သင့်တော်သည်။
ImageFontwidth () function သည် built-in ဖောင့်အရွယ်အစား (1 မှ 5) အရွယ်အစားကိုသာလက်ခံပြီးစာလုံးပေါင်း၏အကျယ်များကိုသတ်မှတ်ထားသောဖောင့် (pixels) တွင်ပြန်ပို့သည်။ သို့သော်ဤလုပ်ဆောင်ချက်သည်မည်သည့်ကြိုး၏အလုံးစုံအကျယ်ကိုတိုင်းတာ။ မရပါ။
<?php
// ရိုးရာအသုံးပြုမှု,အဖြစ် built-in ဖောင့်အရွယ်အစားကိုရယူပါ3ဇာတ်ကောင်၏ width
$charWidth = imagefontwidth(3);
echo "ဇာတ်ကောင်အကျယ်: $charWidth";
?>
ဤနည်းလမ်းသည်မည်သည့်ကြိုးသို့မဟုတ်စိတ်ကြိုက် font ကိုမဆိုအကျယ်ကိုတိကျစွာမရရှိနိုင်ပါ။
Truetype ဖောင့်များအတွက် PHP မှပေးသော function ကို imagettfbox () သည် function တစ်ခုဖြစ်သည်။ ၎င်းသည်ပုံပေါ်ရှိပေးထားသောစာသား၏သွဇာညောင်းသော box ကိုညွှန်ပြနေသော array ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤကိုသွဒီနိတ်များကိုတွက်ချက်ခြင်းအားဖြင့်စာသား၏အကျယ်နှင့်အမြင့်ကိုရရှိနိုင်သည်။
array imagettfbbox(float $size, float $angle, string $fontfile, string $text)
$ အရွယ်အစား : ဖောင့်အရွယ်အစား
$ angle : ထောင့် (များသောအားဖြင့် 0)
$ fontfile : font file လမ်းကြောင်း (.ttf)
$ စာသား - တိုင်းတာရန်လိုအပ်သည့်စာသား
စာသား 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
အောက်ပါဥပမာသည်စာသားအကျယ်ကိုတိကျစွာတိုင်းတာရန် 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";
?>
စာသားအကျယ်ကိုရရန်ကျွန်ုပ်တို့သည်စာသားအကျယ်ကိုရယူရန်အတွက်ပထမ ဦး ဆုံး 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);
?>
ImageFontwidth () သည် built-in ဖောင့်များအတွက်သာသင့်တော်ပြီးရိုးရှင်းသောလုပ်ဆောင်ချက်များရှိသည်။
imagettfbox () သည် TTF ဖောင့်၏စာသားနယ်နိမိတ်အရွယ်အစားကိုတိကျစွာရရှိပြီးစာသားအကျယ်ကိုပိုမိုတိကျစွာတိုင်းတာနိုင်သည်။
Igeettfbox () ကိုအသုံးပြုခြင်းသည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်သောစာသား positioning နှင့် typtograpings လိုအပ်ချက်များကိုရရှိနိုင်ပါသည်, အထူးသဖြင့်စိတ်ကြိုက်စာလုံးများနှင့်ရှုပ်ထွေးသောစာသားများအတွက်သင့်တော်သည်။
ဤဆောင်းပါးတွင်မိတ်ဆက်ပေးသောဥပမာများမှတဆင့်ပုံရိပ်စကားလုံးအပြောင်းအလဲအတွက်တိကျမှန်ကန်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုတိုးတက်စေရန် imagefontwidth () ကို အလွယ်တကူ အစားထိုးနိုင်သည်။