Home >Backend Development >PHP Problem >How to write text in php pictures

How to write text in php pictures

藏色散人
藏色散人Original
2019-09-28 09:12:495143browse

How to write text in php pictures

php Writing text on a picture is equivalent to adding a text watermark to the picture. Generally, when uploading a picture, the watermark is usually a text or picture logo watermark. Let’s take a look at the two adding methods. .

1. Text watermark

Text watermark is to add text to the picture. It mainly uses the imagefttext method of the gd library and requires a font file.

$dst_path = 'dst.jpg';
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
//打上文字
$font = './simsun.ttc';//字体路径
$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色
imagefttext($dst, 13, 0, 20, 20, $black, $font, '快乐编程');
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}
imagedestroy($dst);

Create a new picture, and then print the text watermark:

// imagecreatefromstring
// imageCreateFromPng  Create a new image from file or URL   创建图片对象
// Create a 300x100 image,新创建一张图片
$im = imagecreatetruecolor(500, 300);
// set color
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);
// Make the background red
// function imagefilledrectangle ($image, $x1, $y1, $x2, $y2, $color) {}
imagefilledrectangle($im, 0, 0, 300, 100, $red);
// Path to our ttf font file
$font_file = './font/Arial.ttf';
// imagefttext ($image, $size, $angle, $x, $y, $color, $fontfile, $text, $extrainfo = null )
// Draw the text 'PHP Manual' using font size 13
imagefttext($im, 13, 0, 150, 50, $black, $font_file, 'PHP Manual');
// Output image to the browser
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
clipboard.png

The rendering is as follows:

How to write text in php pictures

2. Picture Watermark

Picture watermark is to add one picture to another picture, mainly using the imagecopy and imagecopymerge of the gd library.

$dst_path = 'myimage.jpg';
$src_path = 'http://www.logodashi.com/FileUpLoad/inspiration/636003768803214440.jpg';
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);
//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 30);
//如果水印图片本身带透明色,则使用imagecopy方法
// imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}
imagedestroy($dst);
imagedestroy($src);

Rendering:

How to write text in php pictures

3. Other functions related to image processing

/*
 *返回图像的大小及图像类型
// Get the size of an image
$size = getimagesize("http://image18-c.poco.cn/mypoco/myphoto/20160901/20/17857099520160901203311082.jpg?750x956_120");
print_r($size);
// 打印结果
Array
(
    [0] => 750
    [1] => 956
    [2] => 2
    [3] => width="750" height="956"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
)
*/
/**
 * imagecopy — 拷贝图像的一部分
 */
// bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
// 将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
/*
 *
 * http://php.net/manual/zh/function.imagecopymerge.php
 *imagecopymerge — 拷贝并合并图像的一部分
 *bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
 *
 *
 */

Recommended tutorials:PHP tutorial

The above is the detailed content of How to write text in php pictures. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn