0

可能重复:
让 GD 从二进制字符串中获取图像

我需要能够在 foreach 循环中动态地将图像更改为灰度。

我基本上是从数据库中获取一组图像 url,在我显示它们之前,我需要它们变成灰度,简单地说。

在不实际创建单独的文件作为图像源的情况下是否可行,该文件将处理文件并输出图像头?

4

2 回答 2

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/

于 2012-10-11T16:27:38.647 回答
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.'" />';

这应该够了吧。

于 2012-10-11T15:53:08.730 回答