この課題は、次のようなきれいな写真を作成するために画像の色相を徐々に変化させることです。
(オリジナル)
チャレンジ
選択した任意の一般的な画像ファイル形式で、2つの非負の整数と画像を取り込むプログラムまたは関数を記述します(画像または生の画像データへのパスを取得できます)。
最初の整数をサイクル、2番目の整数をオフセットと呼びます。
また、浮動小数点ステップを360回のサイクルを画像の面積で割った値、またはとして定義しますstep = 360 * cycles / (image width * image height)
。
画像内の各ピクセルPについて、一度に1行ずつ、左から右、上から下に(つまり、ピクセルが文字の場合は読み取り順に)、次の操作を行います。
増加色相のPをすることによってオフセット度(必要であれば0に360からの周りにループ)。
次に、オフセットをstepずつ増やします。
結果の画像を一般的な画像ファイル形式で保存、表示、または生で出力します。
この手順は、増分的製造、画像内の全画素の色相を増加させるサイクルを周囲に完全なループを色相虹によって最初に色相をオフセットすることにより開始、オフセット。
場合サイクルが 1であり、オフセット上記星空の画像のように、0であり、画素の上部と下部の行は実質的にない色相シフトを有しているが、間にフルカラーのサイクルがあります。
詳細
サイクルは任意の負でない整数にすることができますが、オフセットは0から359までであると仮定できます。
サイクルが0の場合、ステップも0でなければならないため、画像内のすべてのピクセルの色相は正確にオフセットされます。(この場合、オフセットが0の場合、画像はまったく変更されません。)
サイクルとオフセットは、必要に応じて(つまりの
1.0
代わりに1
)floatとして入力されると想定できます。(整数である必要はまったくないことを理解しています。これにより、チャレンジが簡単になります。)「色相」は、HSL / HSVカラーモデルで一般的なRGBカラースペースバージョンを指します。
例
元の:
サイクル= 1、オフセット= 0:
サイクル= 1、オフセット= 180:
元の:
サイクル= 2、オフセット= 60:
元の:
(ArtOfCodeに感謝します。)
サイクル= 1、オフセット= 120:
元の:
(ドアノブに感謝します。)
サイクル= 1、オフセット= 0:
サイクル= 4、オフセット= 0:
サイクル= 200、オフセット= 0:
サイクル= 30000、オフセット= 0:
(これらの画像は、画像を圧縮するため、ピクセル完璧ではない場合があります。)
得点
バイト単位の最短コードが優先されます。Tiebreakerは、より高い投票数の回答です。
クールな見た目のテスト画像を投稿すると、ブラウニーポイントが増えます。