【问题标题】:Convert Image JPG to GIF and print it into the tag IMG in BASE64将Image JPG转换为GIF并打印到BASE64中的标签IMG中
【发布时间】: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

标签: php html image base64


【解决方案1】:

虽然 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" />

【讨论】:

  • 非常感谢,在你的建议 jejeje 之后很容易:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-09
  • 2019-09-22
  • 2013-10-28
  • 2012-05-03
  • 2012-01-25
  • 1970-01-01
  • 2023-02-24
相关资源
最近更新 更多