这个挑战是关于逐渐改变图像的色调来制作漂亮的图片,如下所示:
(原始)
挑战
编写一个程序或函数,该程序或函数使用两个非负整数和一个您选择的任何常见图像文件格式的图像(您可以采用指向图像或原始图像数据的路径)。
我们将第一个整数称为循环,将第二个整数称为offset。
我们还将浮点步长定义为360倍周期除以图像面积,即step = 360 * cycles / (image width * image height)
。
对于图像中的每个像素P,从左到右,从上到下一次移动一行(即,如果像素是字母,则按读取顺序),请执行以下操作:
增加色调的P由偏移度(如果必要的话,从360循环周围为0)。
然后增加抵消由步骤。
以任何常见图像文件格式保存,显示或原始输出结果图像。
此过程递增地增加了图像中的所有像素的色调,使得循环满环周围的色调的彩虹,通过最初偏移色调通过开始偏移。
当周期为1且偏移为0时,如上面的“星夜”图片所示,像素的顶行和底行几乎没有色相偏移,但在这之间有一个完整的颜色周期。
细节
循环可以是任何非负整数,但是您可以假定偏移量是从0到359(含)。
当cycles为0时,图像中的每个像素的色相都会偏移精确的偏移量,因为step也必须为0。(在这种情况下,如果offset为0,则图像根本不会改变。)
如果需要,您可以假设周期和偏移量输入为浮点数(即
1.0
代替1
)。(我意识到它们根本不需要是整数,这只是使挑战变得更加简单。)“色相”是指HSL / HSV颜色模型中常见的RGB颜色空间版本。
例子
原版的:
周期= 1,偏移= 0:
周期= 1,偏移= 180:
原版的:
周期= 2,偏移= 60:
原版的:
(感谢ArtOfCode。)
周期= 1,偏移= 120:
原版的:
(感谢门把手。)
周期= 1,偏移= 0:
周期= 4,偏移量= 0:
周期= 200,偏移= 0:
周期= 30000,偏移= 0:
(由于imgur压缩它们,这些图像可能不是像素完美的。)
计分
以字节为单位的最短代码获胜。决胜局是最高投票的答案。
发表自己很酷的测试图像的答案将从我身上获得更多的布朗尼分数。