php怎么在图片上加字
时间 : 2023-04-25 15:00:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在 PHP 中给图片添加文字,通常使用 GD 库实现。GD 库是一个开源的图形库,可以用来创建和修改图片。以下是一些添加文字到图片的基本步骤:
1. 打开原始图片,并创建一个与其相同大小的空白图片。
```php
// 打开原始图片
$originalImg = imagecreatefromjpeg('original.jpg');
// 创建同样大小的空白图片
$blankImg = imagecreatetruecolor(imagesx($originalImg), imagesy($originalImg));
2. 复制原始图片到空白图片中。
```php
// 复制原始图片到空白图片中
imagecopy($blankImg, $originalImg, 0, 0, 0, 0, imagesx($originalImg), imagesy($originalImg));
3. 在空白图片中添加文字。
```php
// 设定字体、字体大小、字体颜色、文字内容
$font = 'Arial.ttf';
$fontSize = 20;
$fontColor = imagecolorallocate($blankImg, 255, 255, 255);
$text = 'Hello World!';
// 测量文字尺寸
$textWidth = imagettfbbox($fontSize, 0, $font, $text);
$textWidth = $textWidth[2] - $textWidth[0];
// 计算文字的位置,使其居中
$x = (imagesx($blankImg) - $textWidth) / 2;
$y = imagesy($blankImg) - (imagesy($blankImg) - $fontSize) / 2;
// 添加文字到空白图片上
imagettftext($blankImg, $fontSize, 0, $x, $y, $fontColor, $font, $text);
4. 保存修改后的图片。
```php
// 保存修改后的图片
imagejpeg($blankImg, 'modified.jpg', 100);
完整的代码示例:
```php
// 打开原始图片
$originalImg = imagecreatefromjpeg('original.jpg');
// 创建同样大小的空白图片
$blankImg = imagecreatetruecolor(imagesx($originalImg), imagesy($originalImg));
// 复制原始图片到空白图片中
imagecopy($blankImg, $originalImg, 0, 0, 0, 0, imagesx($originalImg), imagesy($originalImg));
// 设定字体、字体大小、字体颜色、文字内容
$font = 'Arial.ttf';
$fontSize = 20;
$fontColor = imagecolorallocate($blankImg, 255, 255, 255);
$text = 'Hello World!';
// 测量文字尺寸
$textWidth = imagettfbbox($fontSize, 0, $font, $text);
$textWidth = $textWidth[2] - $textWidth[0];
// 计算文字的位置,使其居中
$x = (imagesx($blankImg) - $textWidth) / 2;
$y = imagesy($blankImg) - (imagesy($blankImg) - $fontSize) / 2;
// 添加文字到空白图片上
imagettftext($blankImg, $fontSize, 0, $x, $y, $fontColor, $font, $text);
// 保存修改后的图片
imagejpeg($blankImg, 'modified.jpg', 100);
这段代码可以将名为「original.jpg」的图片打开,并在其上添加「Hello World!」的文字,最终输出一张新的名为「modified.jpg」的图片。可以根据需要修改代码中的参数,例如修改字体、字体大小、文字内容等。
在 PHP 中,可以使用 GD 扩展库来操作图片。加文字到图片上,可以使用 GD 库提供的函数 `imagettftext`。
`imagettftext` 函数的用法如下:
```php
imagettftext($image, $size, $angle, $x, $y, $color, $font, $text);
参数说明:
- `$image`:要加文字的图片资源;
- `$size`:字体大小;
- `$angle`:字体角度(以度数表示);
- `$x` 和 `$y`:文字左下角的坐标;
- `$color`:文字颜色,使用 `imagecolorallocate` 函数创建;
- `$font`:字体文件的路径;
- `$text`:要输出的文本。
下面是一个示例代码,演示如何在一张图片上添加文字:
```php
// 创建一张 200x200 的空白图片
$image = imagecreatetruecolor(200, 200);
// 分配颜色
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
// 在图片上填充背景色
imagefill($image, 0, 0, $bg_color);
// 设置字体路径
$font = 'font.ttf';
// 在图片上添加文字
$text = 'Hello, world!';
imagettftext($image, 20, 0, 50, 100, $text_color, $font, $text);
// 输出图片
header('Content-Type: image/png');
imagepng($image);
// 释放资源
imagedestroy($image);
上述代码中,我们首先使用 `imagecreatetruecolor` 函数创建一张 200x200 的空白图片,分配了一个白色的背景。然后使用 `imagettftext` 函数在图片上加上了一行字体为 `font.ttf` 文件中的 `Hello, world!` 文本,字体大小为 20,颜色为黑色,位置为左下角的 (50, 100)。最后使用 `imagepng` 函数将图片输出为 PNG 格式,并释放资源。
注意:在实际使用中,需要将 `$font` 参数替换为自己的字体文件路径,并确认服务器上已经安装了相应的字体库。
上一篇
php登录界面怎么验证码
下一篇
php 怎么随机手机号
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章