如何从3个8位灰度图像创建RGB CIImage?

时间:2015-07-22 13:44:19

标签: ios swift image-processing core-image

我有3个CIImage个对象是灰色的8-bpp图像,它们是新图像的8位R,G和B通道。除了低级图像像素数据操作之外,还有一种方法可以构建CIImage(来自过滤器或其他更简单的方法)

我意识到我可以通过循环新RGB图像的像素并从我拥有的灰色通道设置它来做到这一点 - 我想知道是否有更惯用的方式来处理通道。

例如,在Pillow for Python中,它是Image.merge([rChannel, gChannel, bChannel]) - 如果没有内置方法,我知道如何编码像素访问方式。

1 个答案:

答案 0 :(得分:0)

这本书Core Image for Swift介绍了如何执行此操作并提供了在此处执行此操作的代码:

https://github.com/FlexMonkey/Filterpedia/blob/master/Filterpedia/customFilters/RGBChannelCompositing.swift

基本思想是你需要在GPU着色器语言中提供一个颜色内核函数并将其包装在一个CIFilter子类中。

注意:此处不会复制代码,因为它是在GPL下,这是与StackOverflow答案不兼容的许可证。如果您想了解它是如何完成的,可以点击链接,如果它与您的许可证兼容,请使用它。