ICode9

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

php-如何选择一种颜色以使图像透明?

2019-12-10 16:29:37  阅读:248  来源: 互联网

标签:transparency colors gd php


第一个问题,请保持柔和;-)

我编写了一个图像类,该类使简单的事情(矩形,文本)更加容易,基本上是一堆用于PHP图像函数的包装器方法.
我现在想做的是允许用户定义一个选择,并使以下图像操作仅影响所选区域.我想我可以通过将图像复制到imgTwo并从中删除所选区域来进行此操作,像往常一样在原始图像上执行以下图像操作,然后在调用$img-> deselect()时,将imgTwo复制回原件,然后销毁副本.

>这是最好的方法吗?显然,在选定区域内定义取消选定的区域会很棘手,但我现在可以接受它:)

然后,我要从副本中删除选择的方法是通过绘制透明颜色的矩形来解决问题,但是这种方法是可行的-但我无法弄清楚如何选择该颜色,同时还要确保其余颜色不会出现图片.此应用程序中的输入图像是真彩色PNG,因此没有带有颜色索引的调色板(我认为吗?).

>必须有一种更好的方法,而不是收集每个像素的颜色,然后找到一种不在$existing_colours数组中出现的颜色.

解决方法:

PNG透明与GIF透明的工作原理不同-您无需将特定颜色定义为透明.
只需使用imagecolorallocatealpha()并确保将imagealphablending()设置为false:

// "0, 0, 0" can be anything; 127 = completely transparent
$c = imagecolorallocatealpha($img, 0, 0, 0, 127);

// Set this to be false to overwrite the rectangle instead of drawing on top of it
imagealphablending($img, false);

imagefilledrectangle($img, $x, $y, $width - 1, $height - 1, $c);

标签:transparency,colors,gd,php
来源: https://codeday.me/bug/20191210/2102765.html

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

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

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

ICode9版权所有