我与设计团队合作,他们希望我在我们的iOS应用中实现照片滤镜。他们为我提供了两个非常类似于此图像的文件,每个文件具有不同的颜色。
有人通知我,显然我应该能够在Photoshop中打开它们,比较颜色的差异,然后将这些差异应用于应用程序中的图像过滤。老实说,我什至不知道从哪里开始。我已经在photoshop中打开了它们,但不确定要查找什么。我知道如何使用CIFilter
应用过滤器,我只是不知道要应用哪种过滤器。
至少有人可以指出正确的方向吗?
最佳答案
他们给您的是3D查找表或LUT。除了检查LUT之外,您根本不需要参与Photoshop。
看起来您的LUT是25x25x40。每个正方形为25x25,图片中为8x5 = 40个正方形。 (实际上有8x4 = 32个正方形,上下分别有部分正方形。这很奇怪。)每个25x25正方形都有一个恒定的蓝色值,红色值随x坐标变化,绿色值随y坐标变化。
要使用LUT,请对输入图像中的每个像素取(r,g,b)值,然后在LUT中查找新值。
因此,如果您的(R,G,B)值是(128,52,215)(假设每通道8位,因此值在0-255之间),则需要将其缩放为在您的LUT范围内。
为此,请计算:
Red: 128 / 255 = x / 25
Green: 52 / 255 = x / 25
Blue: 215 / 255 = x / 40
这样就得到:
Red = 13
Green = 5
Blue = 34
现在,您可以将它们用作LUT中的坐标。您需要蓝色为34/40的正方形。这在您的设置中很棘手,因为它不是一行很长的行。通常,您只需将图块宽度乘以要获取起始像素的图块的数量,但是我们不能在此处这样做。我建议重新格式化您的LUT以这种方式工作。如果这样做,您可以乘以34 * 25 * sizeof(RGB)。到达那里后,您可以将该图块本身视为图像,然后查找(x,y)=(13,5)。 (您可以使用5 * bytesPerRow + 13 * bytesPerPixel来完成此操作。)
现在,您具有LUT的颜色。
有一个名为
CIColorCube
的CoreImage过滤器,它允许您执行类似的操作,但我自己并未使用它。关于ios - 尝试使用两个颜色查找表过滤图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23773714/