<?php
// http://localhost/2024/test/merge.php
// 二维码内容 uteng_1 md5 4f6bd7375df8aa0332de2a0d9ae7d869
// 注意代码目录下有 qr.png 和 logo.jpg 文件
// 二维码图片
$qr = imagecreatefrompng('qr.png');
// 获取二维码宽高
$qr_width = imagesx($qr);
$qr_height = imagesy($qr);
// logo 图片
$logo = imagecreatefromjpeg('logo.jpg');
// logo宽高
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);
// 修改二维码颜色-红色
imagefilter($qr, IMG_FILTER_COLORIZE, 255, 0, 0);
// 修改二维码颜色-#1f69ff
$hex = "#1f69ff";
// $hex 为随机颜色
$hex = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
// 拆分十六进制颜色值为RGB值
$r = hexdec(substr($hex, 0, 2));
$g = hexdec(substr($hex, 2, 2));
$b = hexdec(substr($hex, 4, 2));
// imagefilter($qr, IMG_FILTER_COLORIZE, 31, 105, 255);
imagefilter($qr, IMG_FILTER_COLORIZE, $r, $g, $b);
// 创建新的画布,宽高为二维码图片宽高
$img = imagecreatetruecolor($qr_width, $qr_height);
// 将二维码绘制到画布上面
imagecopyresampled($img, $qr, 0, 0, 0, 0, $qr_width, $qr_height, $qr_width, $qr_height);
// 将logo绘制到画布上面,绘制在最中间,logo宽高为固定的100px
$logo_size = 80;
// 源图,绘制上去的logo
// 在源图的x起点,在源图的y起点
// 绘制的图片的x起点,绘制的图片的y起点
// 绘制图片在源图的宽,绘制图片在源图的高度
// 绘制图片本身的宽度,绘制图片本身的高度
imagecopyresampled($img, $logo, ($qr_width - $logo_size) / 2, ($qr_height - $logo_size) / 2, 0, 0, $logo_size, $logo_size, $logo_width, $logo_height);
header('Content-Type: image/png');
imagepng($img);
PHP将logo放在二维码上
于 2024-05-15 17:43:13 首次发布