一行代码解决 ThinkPHP5 压缩水印图片后透明背景变成白色背景的问题

本文介绍了如何解决使用ThinkPHP5添加水印时,由于压缩导致透明背景水印变为白色背景的问题。通过修改think-image库的crop()方法,成功保持了水印的透明效果。
摘要由CSDN通过智能技术生成

 

需求:在用户上传图片时添加图片水印,水印图大小需要根据用户上传的图片大小变化;

思路:上传图片时,使用TP5封装好的图片处理类对上传的图片进行添加水印,水印图需要根据上传图片的大小进行适当压缩;

问题:水印图压缩之后,原本透明底变成白色底;

解决:小改tp5封装的图片处理类的压缩方法;

过程:定位至:thinkphp\labrary\think-image\src->crop() 方法(我们用到的thumb()方法最后还会经过该方法处理)

// 调整默认颜色
$color = imagecolorallocate($img, 255, 255, 255);

改成:

// 调整默认颜色
// $color = imagecolorallocate($img, 255, 255, 255);
$color = imagecolorallocatealpha($img, 0, 0, 0, 127);

测试结果:

成功将将透明底色的图片加印至上传

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值