-1

我是否能够在不使用的情况下获取存储为 NSData 的 UIImage 的大小(CGSize)[UIImage imageWithContentsOfFile:];?能够做到这一点将使我的代码运行得更快。

4

4 回答 4

2

你不会使用 CoreGraphics 或 UIKit。您需要检查二进制流。幸运的是,它之前已经在许多其他语言中完成过。一个快速的谷歌在 Ruby 中发现了这个实现,它确定文件类型(jpg、bmp、png 和 gif)并提取图像的尺寸。应该很容易使用 NSData 转换为 Objective-C。从parse_size功能开始。

于 2012-10-15T18:04:48.557 回答
1

存储为 NSData 的图像可以是任意数量的格式,例如 png、jpg、tiff、gif、raw 等。当你只有一个字节时,它不是 UIImage。所以一般来说,您无法确定存储为 NSData 对象的图像的大小。

如果您可以保证您的每一个 NSData 图像都以相同的格式存储,例如 PNG,那么您可以根据 PNG 数据文件格式扫描 NData 以获取大小信息。这可能比从数据创建 UIImage 更有效。但显然这是更多的工作。

于 2012-10-15T18:00:52.940 回答
0

保存时将大小信息写入某种数据库。

要获取磁盘上文件的大小,您可以使用NSFileManager attributesOfItemAtPath:error:

于 2012-10-15T18:00:44.150 回答
0

您可能会发现有用的 CGImageSource API。Ole Begemann 有一个关于这个主题的很棒的教程。

于 2012-10-15T18:08:02.647 回答