如何使用iPhone/iPad SDK快速确定文件是否为图像文件

如何使用iPhone/iPad SDK快速确定文件是否为图像文件,iphone,image,ipad,file-format,Iphone,Image,Ipad,File Format,如果磁盘上有一个可能更大的文件,我想快速确定UIImage是否能够加载它 我不一定相信文件扩展名是可靠的;我需要看看实际的数据 我当然可以将它加载到UIImage中,但这相对较慢,而且内存比较密集。我宁愿只看一下文件的第一部分,然后做出决定 最快、最有效的方法是什么,而且仍然相当可靠?理想情况下,它应该是苹果提供的API,但我在搜索中没有找到。99.9%的溶液就足够了;我愿意在极少数情况下出现误报,例如图像文件被截断。您担心图像损坏吗?为什么不从文件中读取签名并确定其是否在支持的图像格式列表中?

如果磁盘上有一个可能更大的文件,我想快速确定UIImage是否能够加载它

我不一定相信文件扩展名是可靠的;我需要看看实际的数据

我当然可以将它加载到UIImage中,但这相对较慢,而且内存比较密集。我宁愿只看一下文件的第一部分,然后做出决定


最快、最有效的方法是什么,而且仍然相当可靠?理想情况下,它应该是苹果提供的API,但我在搜索中没有找到。99.9%的溶液就足够了;我愿意在极少数情况下出现误报,例如图像文件被截断。

您担心图像损坏吗?为什么不从文件中读取签名并确定其是否在支持的图像格式列表中?

没有用于处理损坏文件的Apple API

担心a不知道UIImage支持哪种图像格式—它似乎因平台而异,b具有可靠、详尽的签名集。我想你指的是开头的魔法字节。我最担心的是原始格式的多样性,确保我有很好的覆盖率,等等。这就是为什么我希望使用官方API或开源项目/清单来获得一些官方的东西或一些技巧/技术。我没有研究过它,但这可能会有所帮助:它应该提供一种在不加载文件的情况下查询图像信息的方法……但该示例代码是一种将已解码的像素数据提供给处理该数据的进程的方法。我需要相反的方法——一种从现有文件中增量请求解码像素数据的方法。不过,这是未来调查的一个良好开端——谢谢!