核心图像CIImage 8位灰度

时间:2013-01-23 06:50:25

标签: objective-c macos cocoa image-processing core-image

我想做两件事:
1)将8位灰度图像加载为8但是灰度图像
2)将其保存为8位灰度图像

我尝试通过[CIImage imageWithContentsOfURL:options]`将图像加载到CIImage。 据我所知,我可以在项目选项中指定一些选项。但我没有找到任何信息如何做到这一点。在参考CIImage时,我发现只有这些像素格式:

extern CIFormat kCIFormatARGB8;
extern CIFormat kCIFormatRGBA16;
extern CIFormat kCIFormatRGBAf;
extern CIFormat kCIFormatRGBAh;

这是什么意思?我无法通过CIImage加载和保存8位灰度图像?

2 个答案:

答案 0 :(得分:1)

不,8位灰度没有格式。你想做什么?还有其他方法可以使用8位灰度来创建图像,但没有更多信息,很难告诉您要建议什么。

如果您要使用CoreImage来操作它,您需要将其置于上面提到的RGB格式之一。但是如果您不打算使用CoreImage来操作它,您可能能够以格式创建NSImage(通过创建NSBitmapImageRep)或CGImage(请参阅CGImageCreate())你想要的。

答案 1 :(得分:0)

将 CIImage 保存为灰度图像格式就像这样简单:

CGColorSpaceRef cs = CGColorSpaceCreateWithName(kCGColorSpaceGenericGrayGamma2_2);
NSData *outData = [ctx PNGRepresentationOfImage:input
                          format:kCIFormatL8
                          colorSpace:cs
                          options:@{}];