需求:在用户上传图片时添加图片水印,水印图大小需要根据用户上传的图片大小变化;
思路:上传图片时,使用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);
测试结果:
成功将将透明底色的图片加印至上传