【问题标题】:Imagick: Including PNG leads to displaying strange symbols想象一下:包括PNG会导致显示奇怪的符号
【发布时间】:2015-08-14 10:22:23
【问题描述】:

我正在使用以下代码来显示存储在我的网络空间中的图像:

header('Content-Type: image/png');          

$filePath                       =   JPATH_SITE.'/images/powered_by.png';
$image                          =   new Imagick("{$filePath}[0]"); // [0] means "first page"
$image->setImageFormat('png');
echo $image;            
exit;

这发生在我的 Joomla 组件的模态视图中。结果如下:

我可以做些什么来显示我想要显示的图像?

【问题讨论】:

  • 这段代码到底在哪里?输出图像的 PHP 脚本通常需要隔离 - 它们不能作为框架的一部分运行,这可能会输出其他干扰内容。
  • 嗨 Jonathon,代码位于嵌入到我的 Joomla 中的控制器中!组件。
  • 我不确定,但我认为这行不通。您可能还会收到 Warning: headers already sent 警告。
  • 不,我没有收到此警告 - 它没有显示,我也没有在我的日志中得到它们。嗯,所以我必须看看Joomla!提供了一些东西来做到这一点。

标签: php image imagick


【解决方案1】:

我相信你有很多事情出错了。

我。您禁用了错误,这并没有显示真正的问题。

二。您在文件的开头或结尾有一些空格。这会导致在代码到达header('Content-Type: image/png'); 之前发送标头。

三。因为已经发送了标头(使用默认文本内容类型),所以浏览器将图像数据解释为文本,因此将其呈现为文本。

您发布的代码没有任何问题。您需要做的是找出导致 png 内容类型未发送到浏览器的原因 - 我强烈怀疑这将通过打开错误显示来完成。

【讨论】:

  • 嗯,我创建了一个只有这个内容的 test.php - 没有 Joomla!围绕它的框架。这样可行。感谢您的帮助,现在我必须检查如何在 Joomla 中实现它!
猜你喜欢
  • 1970-01-01
  • 2013-01-13
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多