2010-09-06 93 views
1

这是我的实际代码,我遇到了与为我的php脚本动态生成的gif图像的正确可视化有关的问题。如果我直接访问由脚本生成的gif图像,浏览器显示效果很好,但如果我通过标记img从当前脚本尝试,则浏览器无法显示它。将Image JPG转换为GIF并将其打印到BASE64中的标记IMG中

任何建议朋友?

<?php 
$src = imagecreatefromjpeg('img/ejemplo-2.jpg'); 
list($width, $height) = getimagesize('img/ejemplo-2.jpg'); 
$tmp = imagecreatetruecolor('300', '300'); 
imagecopyresampled($tmp, $src, 0, 0, 0, 0, '300', '300', $width, $height); 
$imagen = imagegif($tmp, "filename.gif"); 
$data = "data:image/gif;base64," . base64_encode(file_get_contents("filename.gif")); 
?> 

<img src="<?php echo $data; ?>" width="300" height="300" /> 
+2

哪个浏览器是你的测试? – 2010-09-06 19:06:09

+0

Mozilla Firefox 3.6通过Mac OS X Snow Leopard,这个例子在我的浏览器中运行良好:http://diveintogreasemonkey.org/patterns/add-image.html – 2010-09-06 19:13:49

+1

是否有什么特别的原因需要使用数据URI方案?它在所有浏览器中都不受支持,并且您将通过base64编码图像数据使用更多的带宽。我强烈建议将您的PHP脚本引用为img src,而不是仅仅将数据转储到那里。 – Brad 2010-09-06 19:14:18

回答

0

虽然Opera 7.2+,Firefox,Safari,Netscape和Mozilla支持数据URI,但Internet Explorer 5-7不支持。然而,据报道,Internet Explorer 8通过了Acid2测试,使得数据URL成为嵌入较小装饰图像的可行替代方案。有些解决方法可以用于旧版Internet Explorer。

如果你想获得全面的浏览器缓存的问题,追加一个随机生成的数字到IMG SRC的结尾:

<img src="test.jpg?12345" /> 
+0

非常感谢你,你的建议jejeje后很容易:) – 2010-09-06 22:02:04

相关问题