【发布时间】:2010-09-07 03:18:44
【问题描述】:
这是我的实际代码,我在为我的 php 脚本动态生成的 gif 图像的正确可视化方面遇到了麻烦。如果我直接访问脚本生成的 gif 图像,浏览器会显示它很好,但如果我通过标签 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" />
【问题讨论】:
-
你测试的是哪个浏览器?
-
Mozilla Firefox 3.6 over Mac OS X Snow Leopard,这个例子在我的浏览器中运行良好:diveintogreasemonkey.org/patterns/add-image.html
-
是否有任何特殊原因必须使用数据 URI 方案?并非所有浏览器都支持它,并且您将通过 base64 编码图像数据使用更多带宽。我强烈建议将您的 PHP 脚本引用为 img src,而不是直接在此处转储数据。
-
我想解决与浏览器缓存相关的问题。
-
Edwin,浏览器缓存应使用适当的 HTTP 标头进行管理。见:php.net/manual/en/function.header.php