在foreach循环中的Php,GD和灰度

时间:2012-10-11 15:10:52

标签: php foreach gd grayscale

  

可能重复:
  Have GD get image from binary string

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

我基本上从数据库中取出一组图像网址,然后在显示它们之前,我需要将它们变成灰度,简单来说就是这样。

如果没有实际创建一个单独的文件作为图像源,它会处理文件和输出图像标题是否可行?

2 个答案:

答案 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/