Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php gd menetapkan teks ke tengah

php gd menetapkan teks ke tengah

PHPz
PHPzasal
2023-05-06 16:16:081046semak imbas

Dalam pembangunan web, menambah beberapa teks pada gambar adalah keperluan yang sangat biasa Jika anda mahu teks dipaparkan di tengah, anda perlu menyediakan perpustakaan gd dalam php dengan sewajarnya.

Pustaka PHP GD ialah perpustakaan pemprosesan grafik untuk PHP yang boleh digunakan untuk mencipta dan memanipulasi imej. Melalui perpustakaan GD, kami boleh menambah teks, melukis garisan, melukis grafik dan satu siri operasi pada gambar untuk mencapai keperluan gambar tersuai. Dalam operasi ini, paparan tengah teks adalah keperluan yang sangat biasa Mari kita perkenalkan cara menetapkan paparan tengah teks dalam pustaka GD.

Pertama sekali, apa yang perlu dijelaskan ialah fungsi yang disediakan oleh perpustakaan GD untuk menambah teks ialah imagestring() dan imagestringup(). Fungsi kedua-dua fungsi ini adalah untuk menambah rentetan pada imej supaya rentetan itu dipaparkan mengikut saiz fon dan fon yang ditentukan. Di sini kami terutamanya memperkenalkan cara menggunakan imagestring().

imagestring() Format sintaks fungsi adalah seperti berikut:

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

Antaranya, $image mewakili sumber imej, $font mewakili saiz fon, $x dan $y mewakili kedudukan sudut kiri atas aksara dalam imej, $string mewakili rentetan yang akan dikeluarkan dan $color mewakili warna rentetan.

Berikut ialah kod contoh khusus yang boleh memusatkan rentetan dalam imej:

<?php
// 定义文本信息
$text = "Hello World!";

// 定义字体大小
$fontsize = 20;

// 获取字体的宽度和高度
$fontwidth = imagefontwidth($fontsize);
$fontheight = imagefontheight($fontsize);

// 定义图片的宽度和高度
$imageWidth = strlen($text) * $fontwidth;
$imageHeight = $fontheight;

// 创建一个指定大小的画布
$image = imagecreate($imageWidth, $imageHeight);

// 设置背景颜色
$bgColor = imagecolorallocate($image, 255, 255, 255);

// 设置文本颜色
$textColor = imagecolorallocate($image, 0, 0, 0);

// 计算文本的 X 和 Y 坐标
$textX = ($imageWidth - strlen($text) * $fontwidth) / 2;
$textY = ($imageHeight - $fontheight) / 2;

// 在画布上添加文本
imagestring($image, $fontsize, $textX, $textY, $text, $textColor);

// 输出图像
header('Content-Type: image/png');
imagepng($image);

// 释放内存
imagedestroy($image);
?>

Dalam kod contoh ini, kami mula-mula menentukan rentetan yang akan ditambah dan saiz fon . Seterusnya, lebar dan tinggi fon dikira melalui fungsi imagefontwidth() dan imagefontheight() untuk menentukan saiz imej dan kedudukan teks. Kemudian, kami mencipta kanvas dengan saiz yang ditentukan dan menetapkan warna latar belakang dan warna teks. Akhir sekali, teks ditambahkan pada kanvas melalui fungsi imagestring(). Perlu diingat bahawa apabila kita mengira koordinat X dan Y teks, kita menggunakan formula berikut:

$textX = ($imageWidth - strlen($text) * $fontwidth) / 2;
$textY = ($imageHeight - $fontheight) / 2;

Fungsi formula ini adalah untuk mengira kedudukan tengah teks dalam kanvas. Mula-mula hitung lebar yang diduduki oleh semua teks, kemudian tolak lebar imej, dan bahagikan lebar yang tinggal dengan 2 untuk mendapatkan koordinat X teks. Dengan cara yang sama, dengan mengira koordinat teks pada paksi Y, paparan berpusat rentetan boleh dicapai.

Perlu diingatkan bahawa jika anda ingin melaraskan gaya dan warna fon, anda boleh mengubah suainya melalui API yang berkaitan. Dalam contoh ini, kami menggunakan fungsi imagecolorallocate() untuk menetapkan teks dan warna latar belakang. Dalam projek sebenar tertentu, kita boleh membuat pelarasan mengikut keperluan khusus.

Ringkasnya, menetapkan pemusatan teks dalam perpustakaan GD tidak begitu rumit. Keperluan ini boleh dicapai dengan mudah dengan mengira kedudukan teks dengan betul dan menggunakan fungsi yang berkaitan. Saya harap kandungan di atas dapat membantu semua.

Atas ialah kandungan terperinci php gd menetapkan teks ke tengah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:nombor php kepada asciiArtikel seterusnya:nombor php kepada ascii