Heim > Backend-Entwicklung > PHP-Problem > So schreiben Sie Text in PHP-Bilder

So schreiben Sie Text in PHP-Bilder

藏色散人
Freigeben: 2023-02-25 10:48:02
Original
5137 Leute haben es durchsucht

So schreiben Sie Text in PHP-Bilder

Das Schreiben von Text auf PHP-Bildern entspricht dem Hinzufügen von Textwasserzeichen zu Bildern. Im Allgemeinen handelt es sich bei den Wasserzeichen beim Hochladen um Text- oder Bildlogo-Wasserzeichen Methoden.

1. Textwasserzeichen

Textwasserzeichen dient zum Hinzufügen von Text zum Bild. Es verwendet hauptsächlich die imagefttext-Methode der gd-Bibliothek und erfordert eine Schriftartdatei.

$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);
Nach dem Login kopieren

Erstellen Sie ein neues Bild und drucken Sie das Textwasserzeichen aus:

// 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
Nach dem Login kopieren

Die Darstellung ist wie folgt:

So schreiben Sie Text in PHP-Bilder

2. Bildwasserzeichen

Bildwasserzeichen dient zum Hinzufügen eines Bildes zu einem anderen Bild, hauptsächlich mithilfe der Bildkopie und Bildkopiemerge der GD-Bibliothek.

$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);
Nach dem Login kopieren

Rendering:

So schreiben Sie Text in PHP-Bilder

3. Weitere Funktionen im Zusammenhang mit der Bildverarbeitung

/*
 *返回图像的大小及图像类型
// 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 )
 *
 *
 */
Nach dem Login kopieren

Empfohlenes Tutorial: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Text in PHP-Bilder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage