【问题标题】:Fatal error reading PNG image file: IDAT: CRC error读取 PNG 图像文件的致命错误:IDAT:CRC 错误
【发布时间】:2018-10-08 11:48:24
【问题描述】:

我在使用 php.ini 保存 png 图像时遇到问题。 我遵循了@drew010 的建议,如下所述: https://stackoverflow.com/a/11511605/9117408 但是当我尝试打开保存的图像时,我得到的错误被用作我的问题的标题

这里是发送图片到php的JS代码:

canvas.className = "photo-canvas";
canvas.width = camera.videoWidth;
canvas.height = camera.videoHeight;
canvas.getContext('2d').drawImage(camera, 0, 0);
if (hat.checked)
{
     console.log(canvas.toDataURL());
     var xhttp = new XMLHttpRequest();
     xhttp.open("POST","backend/functions.php", true);
     xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xhttp.send("photo="+canvas.toDataURL());
     ...
}

这里是处理和保存图像的 php 代码:

$data = $_POST['photo'];
list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);
file_put_contents("$_SERVER[DOCUMENT_ROOT]/userphoto/".getdate()[0]."_".$_SESSION['user']['iduser'].".png", $data);

当我尝试从我的计算机打开图像时遇到的错误

我尝试将base64图像直接打开到浏览器中,我能够成功看到图像。那么我的图书馆有问题还是我做错了什么? 谢谢

【问题讨论】:

  • pngcheck检查文件,看看它是否给出了更有用的错误信息(虽然它可能没有,但仍然值得检查)。您可以在某处上传这些错误图片并提供链接吗?
  • @usr2564301 我可以做到但我认为我的库有一些问题

标签: javascript php linux png gd


【解决方案1】:

对于这种情况,只需转到文件系统中的图像文件,并使用“Gimp”之类的图像编辑工具打开图像文件。

并且不需要对图片做任何更改,只需将其导出并替换现有图片即可。

现在您在打开图像时不会收到错误消息。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多