如何将Photoshop的水平调整映射到核心图像filter?
我将几个photoshop元素映射到CIFilter,我唯一遇到的问题是这个级别调整:
哪个CI滤波器(或滤波器的组合)让我在第一个例子中使用上面的16,1.73,239和39/245,或者在第二个例子中使用31,1.25,25 30/255。 我相信这是一种阴影/黑白的水平调整。
任何帮助赞赏。
通过调整公式从这个页面: http : CIColorMatrix
,我相信你可以做这个使用CIColorMatrix
, CIGammaAdjust
和另一个CIColorMatrix
的组合。
我们分别在inBlack
, inGamma
和inWhite
调用input电inBlack
,输出电平outBlack
和outWhite
。 请注意,Photoshop颜色介于0和255之间,而CI颜色介于0和1之间,因此您需要inGamma
Photoshop值(除inGamma
!)除以255,然后再将它们放入以下公式中。
input映射是pixel = (inPixel-inBlack)/(inWhite-inBlack)
,这意味着你的第一个matrix将是
red = [1/(inWhite-inBlack) 0 0 0] green = [0 1/(inWhite-inBlack) 0 0] blue = [0 0 1/(inWhite-inBlack) 0] alpha = [0 0 0 1] bias = [-inBlack/(inWhite-inBlack), -inBlack/(inWhite-inBlack),-inBlack/(inWhite-inBlack), 0]
然后你使用CIGammaAdjust
和inGamma
数字进行伽马校正(在进行我的计算时我必须使用倒数1/inGamma
,也请试试!)。
最后输出映射是像素= gammaCorrectedPixel * (outWhite - outBlack) + outBlack
,给你最后的matrix
red = [(outWhite - outBlack) 0 0 0] green = [0 (outWhite - outBlack) 0 0] blue = [0 0 (outWhite - outBlack) 0] alpha = [0 0 0 1] bias = [outBlack outBlack outBlack 0]
我实际上没有用CoreImage试过,但是计算结果很好!