如何提取NSData中转储的图像信息

时间:2013-09-26 09:12:46

标签: objective-c image macos nsdata

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

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

P.S。:我已经浏览了NSData类的this文档,但无法找出相关的方法。

2 个答案:

答案 0 :(得分:1)

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

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

如果您只对图像的属性感兴趣但又不想实际构建其表示并仅获取属性,take a look at 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添加到“Link Binary With Libraries”中 How to add ImageIO framework

答案 1 :(得分:0)

将数据转换为UIImage,然后查看this帖子。

UIImage *image = [UIImage imageWithData:data];