我有一个包含100.000张图片的文件夹,但有时候我的图片已经完成了。是否有可能在PHP中检测到这些损坏的图片?我已附上一张示例图片,如您所见,第二张图片在底部被切割。有没有办法检测到第一张图像是完整图像而第二张图像是不完整的?
我没有手动切割图像,它是这样下载的。在图像文件的原始数据中是否存在类似“开始标记”和“结束标记”的内容,我可以检查两者是否都已设置?图片没有以健康的方式裁剪,我附上了缩略图的截图。
答案 0 :(得分:0)
裁剪后的图像不会损坏图像,如果图像损坏,则无法返回高度和宽度等属性。因此,您在示例中显示的图像不是损坏的图像。
您要检查图像是否损坏,您可以执行以下操作
//loop for images file in directory
foreach (glob("*.*") as $filename) {
//if it is not image delete it
if(!@is_array(getimagesize($filename))){
unlink($filename);
}
}
}
答案 1 :(得分:-1)
您的第二张图片是有效图片,不会以任何方式损坏,甚至尺寸也相同。它只是裁剪。当然,您可以使用PHP或任何其他语言的脚本遍历所有图像,但 以某种方式您必须以编程方式检测图像是否已损坏"。 强>
如果裁剪是您必须 找到能够检测图像是否被裁剪 的图像库或工具的唯一标准,那将是困难的部分。使用PHP'例如exec()
你可以在循环中调用这样的工具。
更新问题后,可能会出现实际 损坏的 图片进行整理。检测谁应该更容易。这个问题已在这里提出:Detecting whether an image is corrupted or broken