我是否能够在不使用的情况下获取存储为 NSData 的 UIImage 的大小(CGSize)[UIImage imageWithContentsOfFile:];
?能够做到这一点将使我的代码运行得更快。
问问题
551 次
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 回答