我需要能够在foreach循环中动态地将图像更改为灰度。
我基本上从数据库中取出一组图像网址,然后在显示它们之前,我需要将它们变成灰度,简单来说就是这样。
如果没有实际创建一个单独的文件作为图像源,它会处理文件和输出图像标题是否可行?
答案 0 :(得分:0)
如果您希望在显示之前处理图像,并且不要将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.'" />';
这应该可以解决问题。
答案 1 :(得分:0)
如果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/