PHP 服务器端图片文字合成

需求分析

打印店经常需要套打功能,如员工工牌等。
固定图片上绘制动态文字内容。
网页上有时也需要将动态文字嵌入到图片,方便图片分享。
或者根据内容动态生产条码或二维码。
相比前端创建图片,使用PHP后台实现,可以简化前台调用代码,更灵活方便。

条码生成

/img_text/barcode.php?v=123&scale=2&height=25&backcolor=#ffffff&forecolor=#000000

参数说明:

v:         条码内容【必填】
scale:     放大倍数,默认 2
height:    高度,默认 25
backcolor: 背景颜色,默认 #ffffff
forecolor: 绘制颜色,默认 #000000

二维码生成

/img_text/qrcode.php?v=123&size=300&padding=10

参数说明:

v:         二维码内容【必填】
size:      大小,默认 300
padding:   边距,默认 10

图文嵌套

/img_text/index.php?t=card&v=abc|123&o=png

参数说明:

t: 类型【必填】
v: 文本内容【必填】文字段落之间使用 | 分割

o: 输出类型,默认 png

配置说明:

{
    "img_back": "card.jpg",
    "img_fore": "img.png",
    "text_list": [
        {
            "top": null,
            "left": null,
            "right": 10,
            "bottom": 30,
            "size": 30,
            "rgba": "0,255,0,0.7",
            "angle": 0,
            "text": "{now}"
        }
    ],
    "qrcode_list": [
        {
            "x": 250,
            "y": 20,
            "padding": 10,
            "size": 100,
            "back_rgba": "255,255,255,0.7",
            "text": "{0}"
        }
    ]
}

模板配置中 text 值 {0} 将替换为第一个文本参数。
预设的配置:

<?php
$list = [
    '{ip}'         => $_SERVER["REMOTE_ADDR"],
    '{now}'        => date('Y-m-d H:i:s'),
    '{user_agent}' => $_SERVER['HTTP_USER_AGENT'],
    '{date}'       => date('Y-m-d'),
    '{time}'       => date('H:i:s'),
    '{today}'      => date('Y年m月d日'),
];

实现效果:

源代码下载:

https://files.cnblogs.com/files/zjfree/img_text.zip

参考资料:

原文地址:https://www.cnblogs.com/zjfree/p/14172124.html