PHP将logo放在二维码上

<?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);

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值