iphone - 如何检查图像在 iPhone 上是否有效

标签 iphone javax.imageio

如何检查图像是否有效

例如,当我缓存了一个仅下载一半且失败的图像时,并且该图像无效,那么我想知道它是无效图像并重新下载。 (当我使用损坏的图像时,Xcode 控制台会记录错误: ImageIO:PNG IDAT:CRC 错误)

所以我想找到一种机制来检查图像的验证 适用于不同类型的 JPEG、PNG 等

有人有线索吗?

最佳答案

我首先检查有效的 header 。 其次是页脚。通常最后 8 个字节的 uint 值按顺序是 “73,69,78,68,174,66,96,130”。 这转换成 Int64 等于 5279712195050102914

这应该适用于 png :)

if (memcmp(img_bytes, "\211PNG", 4) != 0||OSReadBigInt64(img_bytes,(length - 8))!=5279712195050102914)

{

  //Bad Data! Free your data and return or something

}

关于iphone - 如何检查图像在 iPhone 上是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675591/

相关文章:

java - TIFFPackBitsCompressor - NPE?

java - 使用 Java 创建分层 Tif 以在 Photoshop 中使用

iphone - 当我在模拟器上运行iPhone应用程序时,屏幕为白色

Iphone 应用程序测试错误 - STComposeString 和 SenTestCase 错误

iphone - 从 SWF 到 AIR 再到 iOS 应用程序

javax.imageio - 用于RawImageInputStream的JAI ImageIO NoClassDefFoundError

java - imageIO 打开 .HDR 文件

Javax ImageIO IIOException 显然没有原因

ios - 如何显示iAD?

iphone - 按下 Home 时使用 CCGLView 的 EXC_BAD_ACCESS