如何将Photoshop的水平调整映射到核心图像filter?

我将几个photoshop元素映射到CIFilter,我唯一遇到的问题是这个级别调整:

从当前版本的Photoshop的屏幕截图

哪个CI滤波器(或滤波器的组合)让我在第一个例子中使用上面的16,1.73,239和39/245,或者在第二个例子中使用31,1.25,25 30/255。 我相信这是一种阴影/黑白的水平调整。

任何帮助赞赏。

通过调整公式从这个页面: http : CIColorMatrix ,我相信你可以做这个使用CIColorMatrixCIGammaAdjust和另一个CIColorMatrix的组合。

我们分别在inBlackinGammainWhite调用input电inBlack ,输出电平outBlackoutWhite 。 请注意,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] 

然后你使用CIGammaAdjustinGamma数字进行伽马校正(在进行我的计算时我必须使用倒数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试过,但是计算结果很好!