0

我将对象中的图像转储作为输入NSData。现在,我想从这个对象中提取图像的相关信息,比如像素数,不。每像素位数等。

谁能告诉我如何从NSData对象转储中提取此信息?

PS:我已经浏览NSData 类的文档,但无法隔离出相关方法。

4

2 回答 2

1

所以最简单的方法是实际构建UIImage对象,NSData然后从中提取信息UIImage

UIImage* image = [UIImage imageWithData:yourData];
NSLog(@"Image is %dx%d",image.size.width, image.size.height);

如果您只对图像的属性感兴趣,但不想实际构建其表示并且只获取属性,请查看CGImageSource

#import <ImageIO/ImageIO.h>

CGImageSourceRef imgSrc = CGImageSourceCreateWithData((__bridge CFDataRef)data, NULL);
size_t nbImages = CGImageSourceGetCount(imgSrc);
for(size_t idx=0; idx<nbImages; ++idx)
{
    NSDictionary* props = (__bridge NSDictionary*)CGImageSourceCopyPropertiesAtIndex(imgSrc, idx, NULL);
    NSLog(@"properties for image %lu in imageSource: %@", idx, props);
}
CFRelease(imgSrc);

[编辑] 为此,显然将 ImageIO.framework 添加到“使用库链接二进制文件” 如何添加 ImageIO 框架

于 2013-09-26T09:23:46.070 回答
0

将数据转换为 UIImage,然后看看这篇文章。

UIImage *image = [UIImage imageWithData:data];
于 2013-09-26T09:17:34.293 回答