可能重复:
Have GD get image from binary stringPHP,GD和灰度在foreach循环
我需要能够改变图像灰度到上飞,foreach循环中。
我基本上是从数据库中取出一组图像URL,然后在显示它们之前,我需要它们变成灰度,简单来说。
它是否可行而不实际创建一个单独的文件作为图像源,它将处理文件和输出图像标题?
可能重复:
Have GD get image from binary stringPHP,GD和灰度在foreach循环
我需要能够改变图像灰度到上飞,foreach循环中。
我基本上是从数据库中取出一组图像URL,然后在显示它们之前,我需要它们变成灰度,简单来说。
它是否可行而不实际创建一个单独的文件作为图像源,它将处理文件和输出图像标题?
如果您希望在显示之前处理图像,并且不要将php脚本作为图像源调用,那么既不将图像保存为新图像,也可以使用base64图像源执行此操作。
喜欢的东西:
<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoABBANSUhEUgAAADIA..." />
您可以使用BASE64_ENCODE在图像上,以获得base64编码数据。
$out = base64_encode(imagepng($im));
echo '<img src="data:image/png;base64,'.$out.'" />';
这应该做的伎俩。
试过但我得到的是一群乱七八糟的字符在源中 –
如果CSS3是可以接受试试这个:
.grayscale {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-o-filter: grayscale(100%);
-kthml-filter: grayscale(100%);
-ms-filter: grayscale(100%);
}
添加class="grayscale"
到您的IMG。这样,您仍然可以使用原始图像,但它们会以灰度显示给用户。如果添加
filter: gray;
到以上所述,在IE6-9
演示使用的iframe类甚至工作:http://jsfiddle.net/8BDVn/
我已经玩过css3了。以上不适用于火狐浏览器的Firefox –
http://demosthenes.info/blog/532/Convert-Images-To-Black-And-White-With-CSS - 这里有一个svg过滤器,你会需要将该svg下载到您的服务器 – xception
是我没有,但大多数的例子只是一个简单的createimagefromjpeg (或其他分机)和imagejpeg(或其他分机)以及图像头的使用,这需要一个单独的文件中的PHP脚本。我想避免像这样的文件添加到服务器。或者换句话说,在我采取进一步措施之前,需要确保这是唯一的方法。 –
@xception我不同意。他不想创建另一个PHP页面。 – blue112
@ blue112再看看这个问题,他说他的问题是他必须创建一个文件作为图像源,这可以避免通过从数据库中创建图像作为字符串传递,除非我误解了一些东西。 – xception