2

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

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

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

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

4

2 回答 2

1

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

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

于 2013-01-24T05:48:53.340 回答
0

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

CGColorSpaceRef cs = CGColorSpaceCreateWithName(kCGColorSpaceGenericGrayGamma2_2);
NSData *outData = [ctx PNGRepresentationOfImage:input
                          format:kCIFormatL8
                          colorSpace:cs
                          options:@{}];
于 2021-04-13T01:13:22.477 回答