Yog*_*007 3 delphi photo image image-processing
我有一个要求,我必须确定照片是否已损坏,并据此标记.
另一件事,我需要确定图像是否有错误的扩展名.我的意思是错误的扩展是有时我遇到了一张jpg扩展的照片但是当我将这张照片加载到IrfanView时,它会报告照片的格式与扩展名不同.
我怎么能在Delphi中做到这一点.
Cos*_*und 14
我有一个要求,我必须确定照片是否已损坏,并据此标记.
您可以尝试一些东西,但对于某些文件格式(例如:BMP,JPEG在某种程度上),只有人才能最终决定文件是否正常或已损坏.最简单的测试是简单地将文件加载到相应的对象(TJpegImage,TPngObject等)中.如果你在加载时遇到异常,你肯定有一个损坏的文件.不幸的是,如果没有引发异常,你就不能说文件没有被破坏.我已经看到损坏的JPEG文件可以很好地加载到Delphi中,TImage并且可以使用Windows的图像查看器打开,但显然已经被人类观察者破坏了.使用BMP图像,它甚至更清晰:打开位图,覆盖文件中间的一些字节,然后在查看器中打开它.任何自动化系统如何告诉位图中间错误颜色的位实际上是错误的?
另一件事,我需要确定图像是否有错误的扩展名.我的意思是错误的扩展是有时我遇到了一张jpg扩展的照片但是当我将这张照片加载到IrfanView时,它会报告照片的格式与扩展名不同.
如何做同样的事情,尝试将文件加载到与其扩展名对应的对象中,如果失败,请尝试使用其他格式打开?这应该很容易.
或者,您可以调查图像标题:大多数文件格式以短签名开头,几个字节.您可以查找所有图像文件格式的文档并查找签名,或者只需打开大量文件并在前4个字节中查找模式.我会选择第二种方法,因为找到所有图像文件格式的正确文档可能是一个挑战.