【发布时间】:2015-12-31 02:05:11
【问题描述】:
我目前在使用 fpdf 时遇到了一个非常奇怪的问题。我发现了一个没有答案的类似问题:not a PNG file in FPDF。我通过浏览器将图像上传到我的文件服务器,然后将其拉入 fpdf 报告。当此图像是 png 时,我收到错误:“FPDF 错误:不是 PNG 文件”。当上传的图像是 jpg 时,我没有收到任何错误。这个问题似乎在几周前一夜之间就出现了。
即使是陌生人,也只有在上传新的 png 时才会发生这种情况。报告中有一个生成良好的 png。当我从系统下载该png并重新上传时,错误再次出现。
以下是我在尝试解决问题时采取的一些步骤:
- 我已确定图像实际上是 png(通过其属性)。
-
我保存图像的方式没有任何改变,但代码如下:
$original = $time."_".$name."_o.".$extension; $thumbnail = $time."_".$name."_t.".$extension; include('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['file']['tmp_name']); $image->save($A_path."images/".$original); $image->resizeToHeight(200); $image->save($A_path."images/thumbs/".$thumbnail); $photo = "images/".$original; $thumb = "images/thumbs/".$thumbnail; - 我检查了它们是否对 PNG 格式或 FPDF 更新有任何更改,但没有运气。
- 我已通过 gimp 将可以工作的 jpg 转换为 png。
- 通过 gimp 将 png 转换为 jpg,然后将 jpg 上传到系统不会产生任何错误。
解决方法 - 我已经开始在保存时将 png 转换为 jpg,而不是重新编码图像。感谢您的帮助。
【问题讨论】:
-
用记事本或notepad++打开图片,如果前几个字符不包含'PNG'则不是png文件
-
@ThisNameBetterBeAvailable 幸运的是(或不幸的是?),PNG 确实出现在前几个字符中。
-
嗯,这是 png 文件的标准,所以你现在知道它不是 png
-
@ThisNameBetterBeAvailable PNG 确实出现在前几个字符中。
-
“pngcheck -v file.png”是什么意思?如果您没有 pngcheck,“identify -verbose file.png”会说什么?错误信息表明文件的前 8 个字节有问题。