CIImage:设置一个特定像素的颜色

时间:2016-05-09 13:34:26

标签: ios9 ciimage

如何设置clickHdlr: function(e){ console.info(e.target.dataset.src); } <div data-src={loopItem} onClick={this.clickHdlr}> <div>some icon</div> <div>some text</div> <div>some icon</div> </div> 的某个特定像素的颜色?我需要有最高性能的选项才能做到这一点......

1 个答案:

答案 0 :(得分:0)

如果您只想设置一个像素,则可以创建一个小的颜色内核,将传递的目标坐标与当前坐标进行比较,并适当地为输出着色。例如:

let kernel = CIColorKernel(string:
"kernel vec4 setPixelColorAtCoord(__sample pixel, vec2 targetCoord, vec4 targetColor)" +
    "{" +
    "   return int(targetCoord.x) == int(destCoord().x) && int(targetCoord.y) == int(destCoord().y) ? targetColor : pixel; " +
    "}"
)

然后,给出一个图像,让我们说一个坚实的红色:

let image = CIImage(color: CIColor(red: 1, green: 0, blue: 0))
    .imageByCroppingToRect(CGRect(x: 0, y: 0, width: 640, height: 640))

如果我们想将像素设置为500,将100设置为蓝色:

let targetCoord = CIVector(x: 500, y: 100)
let targetColor = CIColor(red: 0, green: 0, blue: 1)

以下内容将创建一个名为CIImage的{​​{1}},其中包含红色海洋中的单个蓝色像素:

final

如果你想绘制多个像素,这可能不是最佳解决方案。

西蒙