Rumah pembangunan bahagian belakang masalah PHP php gd menetapkan teks ke tengah

php gd menetapkan teks ke tengah

May 06, 2023 pm 04:16 PM

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);
?>
Salin selepas log masuk

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;
Salin selepas log masuk

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 Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Apakah piawaian pengekodan PHP terkini dan amalan terbaik?

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Bagaimana saya bekerja dengan sambungan php dan pecl?

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP?

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi? Mar 03, 2025 pm 04:47 PM

Adakah Deduplication Array PHP perlu dipertimbangkan untuk kerugian prestasi?

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:50 PM

Apakah teknik pengoptimuman untuk deduplikasi tatasusunan php

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama? Mar 03, 2025 pm 04:51 PM

Bolehkah PHP Array Deduplication memanfaatkan keunikan nama utama?

Apakah amalan terbaik untuk deduplikasi tatasusunan php Apakah amalan terbaik untuk deduplikasi tatasusunan php Mar 03, 2025 pm 04:41 PM

Apakah amalan terbaik untuk deduplikasi tatasusunan php

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP?

See all articles