ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

thinkphp5.1 图片处理类think-image的png 缩略,裁剪和添加水印透明度丢失的问题

2020-12-11 19:35:12  阅读:451  来源: 互联网

标签:img color image 裁剪 修改 thinkphp5.1 null 缩略 255


官方的图片处理类处理png的时候,透明度会丢失

下面是解决办法

要修改的文件:

vendor/topthink/think-image/src/Image.php

缩略

要修改的方法

public function thumb($width, $height, $type = self::THUMB_SCALING)

按如下修改

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

image-20201211191525606

裁剪

要修改的方法

public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = null)

按如下修改

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

image-20201211191801491

添加水印

注意:添加水印需要将裁剪的方法一起修改,单独修改不行

要修改的方法

#按裁剪修改
public function crop($w, $h, $x = 0, $y = 0, $width = null, $height = null)
#水印
public function water($source, $locate = self::WATER_SOUTHEAST, $alpha = 100)

按如下修改

//imagecopymerge($this->im, $src, $x, $y, 0, 0, $info[0], $info[1], $alpha);
// makalo 修改 为了保持PNG的透明效果
imagecopy($this->im, $water, $x, $y, 0, 0, $info[0], $info[1]);

image-20201211192040747

参考:https://www.copylian.com/technology/227.html

标签:img,color,image,裁剪,修改,thinkphp5.1,null,缩略,255
来源: https://www.cnblogs.com/makalochen/p/14122228.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有