我有3个CIImage
个对象是灰色的8-bpp图像,它们是新图像的8位R,G和B通道。除了低级图像像素数据操作之外,还有一种方法可以构建CIImage
(来自过滤器或其他更简单的方法)
我意识到我可以通过循环新RGB图像的像素并从我拥有的灰色通道设置它来做到这一点 - 我想知道是否有更惯用的方式来处理通道。
例如,在Pillow for Python中,它是Image.merge([rChannel, gChannel, bChannel])
- 如果没有内置方法,我知道如何编码像素访问方式。
答案 0 :(得分:0)
这本书Core Image for Swift介绍了如何执行此操作并提供了在此处执行此操作的代码:
基本思想是你需要在GPU着色器语言中提供一个颜色内核函数并将其包装在一个CIFilter子类中。
注意:此处不会复制代码,因为它是在GPL下,这是与StackOverflow答案不兼容的许可证。如果您想了解它是如何完成的,可以点击链接,如果它与您的许可证兼容,请使用它。