【问题标题】:size of an image图像的大小
【发布时间】:2010-05-01 21:25:31
【问题描述】:

有时我必须知道图像的宽度和高度。我正在使用以下代码:

UIImage *imageU = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myImage.png"]];

CGFloat imageW = CGImageGetWidth(imageU.CGImage);
CGFloat imageH = CGImageGetHeight(imageU.CGImage);

我的问题是,如果有任何其他方法可以知道图像的宽度和高度(以像素为单位),而无需将图像加载到变量上,那可能会消耗内存。是否可以直接从文件中读取尺寸而不加载整个图像?

这必须适用于 PNG 和 JPEG。

谢谢。

【问题讨论】:

  • 不是您问题的答案,但您知道 UIImage 有一个 size 属性,对吧?

标签: iphone iphone-sdk-3.0 ipad


【解决方案1】:

您可以解析在标头中包含大小信息的 PNG 文件。见Get size of image without loading in to memory

(顺便说一句,您可以使用imageU.size 来获取图像的CGSize。)

【讨论】:

    【解决方案2】:

    就内存使用而言,我认为您不能“免费”执行此操作。您可以创建一个 NSInputStream 并读取/解析IHDR 部分的数据(按照@KennyTM 的链接),然后丢弃所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2019-07-27
      • 1970-01-01
      相关资源
      最近更新 更多