如何使用r,g,b,矩阵将调整“曲线”应用于图像?

时间:2010-12-21 22:30:40

标签: iphone objective-c ios

这将最终用于iPhone,但它是一个可能以语言无关的方式回答的一般性问题

如何将调整曲线(如Photoshop中)应用于饱和度,对比度等图像?

在查看了一些c,java和actionscript库之后,我想出了如何使用5x5矩阵线性地实现对比度,饱和度,亮度调整:

    1.0, 0.0, 0.0, 0.0, 0.0,
    0.0, 1.0, 0.0, 0.0, 0.0,
    0.0, 0.0, 1.0, 0.0, 0.0,
    0.0, 0.0, 0.0, 1.0, 0.0,
    0.0, 0.0, 0.0, 0.0, 1.0

我在每个像素上循环并根据上面的矩阵修改r,g,b,该像素的值但是如何将5点贝塞尔曲线从Photoshop曲线界面转换为更改r ,g,b,a用于对比度,饱和度等。看起来可能是:

valueWithCGAffineTransform

可以用吗?

编辑:进一步反思的想法是,如果在0-255轴上有一个5点贝塞尔曲线,你如何计算路径上任何给定Y值的X值?然后,您可以使用此信息转换r,g,b,图像的值。

1 个答案:

答案 0 :(得分:3)

答案是:

双立方样条插值

原来与w / matrices无关,但bezier曲线很接近。