可能重复:
让 GD 从二进制字符串中获取图像
我需要能够在 foreach 循环中动态地将图像更改为灰度。
我基本上是从数据库中获取一组图像 url,在我显示它们之前,我需要它们变成灰度,简单地说。
在不实际创建单独的文件作为图像源的情况下是否可行,该文件将处理文件并输出图像头?
可能重复:
让 GD 从二进制字符串中获取图像
我需要能够在 foreach 循环中动态地将图像更改为灰度。
我基本上是从数据库中获取一组图像 url,在我显示它们之前,我需要它们变成灰度,简单地说。
在不实际创建单独的文件作为图像源的情况下是否可行,该文件将处理文件并输出图像头?
如果 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/
如果您希望在显示之前处理图像,并且不调用 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.'" />';
这应该够了吧。