图片处理相关文档:https://www.php.net/manual/zh/ref.image.php
字体下载网站:http://font.chinaz.com/
代码实例
<?php
//图片一(一般在项目中最好用本地图片路径,这里为了演示方便使用在线图片)
$filename_1 = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png';
//图片二
$filename_2 = 'http://tb1.bdstatic.com/tb/static-client/img/webpage/wap_code.png';
//创建图片对象(如果是 jpg jpeg 用 imagecreatefromjpeg 即可)
$image_1 = imagecreatefrompng($filename_1);
$image_2 = imagecreatefrompng($filename_2);
//两张图片合成一张(根据需要自行调整数字参数)
imagecopymerge($image_1, $image_2, 0, 0, 0, 0, imagesx($image_2), imagesy($image_2), 100);
//输出合成图片
var_dump(imagepng($image_1,'./merge.png'));
//创建图像用于放文字
$image_text = @imagecreatetruecolor(450, 50) or die('Cannot Initialize new GD image stream');
//给图像分配颜色
$white = imagecolorallocate($image_text, 255, 255, 255);
//填充颜色
imagefill($image_text, 0, 0, $white);
//分配颜色和透明度(不需要设置透明度的话用 imagecolorallocate 亦可)
$color = imagecolorallocatealpha($image_text,255, 0, 0, 100);
//需要填充的文字
$text = '百度一下,很甜很甜';
//字体
$font = "C:/Users/admin/Desktop/sweet.ttf";
//向图像写入文本
imagettftext($image_text,30,0,10,40,$color,$font,$text);
//输出文字图片
var_dump(imagepng($image_text,'./text.png'));
//将 image_text.png 与 merge.png 合成一张
imagecopymerge($image_1, $image_text, 20, 200, 0, 0, imagesx($image_text), imagesy($image_text), 100);
//输出合成图片
var_dump(imagepng($image_1,'./merge_text.png'));
//图片设置透明(其实就是把指定颜色设置为透明色)
//给图像分配白色
$white = imagecolorallocate($image_1, 255, 255, 255);
//将 merge_text 图像中的白色设置为透明
imagecolortransparent($image_1, $white);
//输出图片
var_dump(imagepng($image_1,'./merge_text_transparency.png'));