0
如何設置CIImage
的某個特定像素的顏色?我需要有最高效的選項來做到這一點...CIImage:設置一個特定像素的顏色
如何設置CIImage
的某個特定像素的顏色?我需要有最高效的選項來做到這一點...CIImage:設置一個特定像素的顏色
如果你想設置只是一個像素,你可以創建一個小色內核比較當前所傳遞的目標座標的座標和顏色輸出適當。例如:
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))
如果我們要100像素設置在500,藍:
let targetCoord = CIVector(x: 500, y: 100)
let targetColor = CIColor(red: 0, green: 0, blue: 1)
以下將創建一個名爲final
的CIImage
,其中一個紅色的海中有一個藍色像素:
let args = [image, targetCoord, targetColor]
let final = kernel?.applyWithExtent(image.extent, arguments: args)
如果你想繪製多個像素,這可能不是最好的解決方案。
Simon