Als großer Fan des Rubik's Cube und der coolen Kunst habe ich daran gearbeitet, beides zu kombinieren, um ein paar wirklich coole Sachen zu machen. Lösen von Rubiks Miniaturwürfeln, um rudimentäre Pixel bei der Bildung von Rubiks Würfelkunst zu bilden. Beispiele für solche Kunstwerke finden Sie unter folgendem Link: http://google.com/search?q=rubik%27s+cube+art
Der Zweck dieses Code Golf besteht nun darin, Code zu erstellen, der ein Bild als Eingabe akzeptiert und es dann auf folgende Weise konvertiert:
Das Bild wird zunächst auf websichere Graustufenfarben reduziert. Der Grund dafür ist, dass wir die websichere Graustufenpalette (dh 000000, 333333, 666666, 999999, CCCCCC und FFFFFF) isolieren müssen. Ein Algorithmus zur kolorimetrischen Konvertierung in Graustufen ist verfügbar unter: http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.28luminance-preserving.29_conversion_to_grayscale , falls Sie dies als Inspiration verwenden möchten.
Man würde dann die Graustufen auf die entsprechenden Farben rendern. Kurz gesagt: 000000 bezieht sich auf Rubiks Blau, 333333 auf Rubiks Rot, 666666 auf Rubiks Grün, 999999 auf Rubiks Orange, CCCCCC auf Rubiks Gelb und FFFFFF auf Rubiks Weiß.
Ich würde es vorziehen, wenn der resultierende Code von der Palette des Fotos direkt in Rubiks Farben gerendert werden kann. Die zweistufige Methode von der Konvertierung in web-sichere Graustufen und dann in die entsprechende Rubik-Palette dient nur dazu, Ihnen eine Vorstellung von der Logik zu geben, die hinter dem Prozess steckt.
Die tatsächlichen RGB-Werte für die Rubik-Palette müssen den folgenden Angaben entsprechen:
- Rot: # C41E3A
- Grün: # 009E60
- Blau: # 0051BA
- Orange: # FF5800
- Gelb: # FFD500
- Weiß: #FFFFFF
Um Ihnen ein Beispiel zu geben, habe ich Abraham Lincolns Kopf aus dem folgenden Bild abgeschnitten und den Algorithmus so gerendert, dass er Folgendes ergibt :
Das Raster ist vorhanden, damit Sie sehen können, wie die einzelnen Rubik-Miniaturwürfel konfiguriert werden müssten, um das Bild zu erstellen. Die wahre Größe des resultierenden Bildes beträgt 45 x 45 Pixel, was bedeutet, dass (45/3) * (45/3) = 15 * 15 = 225 Miniaturwürfel von Rubik verwendet würden, um dieses Bild zu erstellen. Ich erwarte nicht, dass Sie das resultierende Bild mit einem Gitter präsentieren, wie ich es habe.
Das ist also erforderlich:
Das von diesem Algorithmus zu verarbeitende Bild muss x Pixel breit und y Pixel hoch sein, sodass x und y ein Vielfaches von 3 sind. Dies erleichtert das Rendern als Teil eines Rubik's Cube-Mosaiks. Wenn Ihr Bild sehr groß ist, empfiehlt es sich, es vor der Verarbeitung auf etwa 45 x 45 bis 75 x 75 zu verkleinern. Beachten Sie, dass diese Größenänderungskomponente OPTIONAL ist.
Das Bild muss in die sextakolorierte Rubik-Cube-Palette konvertiert werden, um das Mosaik zu erstellen.
Das resultierende Bild muss nach der Verarbeitung eine gültige Grafikdatei sein. Um zu beweisen, dass Ihr Code funktioniert, führen Sie ihn gegen ein Bild eines Präsidenten der Vereinigten Staaten von Amerika oder eines bekannten Hollywood-Stars aus. Ich habe in meinem Beispiel bereits Abraham Lincoln verwendet, daher kann dieser Präsident nicht mehr verwendet werden. Stellen Sie sicher, dass Sie die Sprache, die Sie verwendet haben, die Byteanzahl sowie den Präsidenten / Prominenten angeben, der zum Testen Ihres Codes verwendet wurde, einschließlich vor und nach den Aufnahmen ...
Jeder Beitrag muss einen eindeutigen Präsidenten / Prominenten als Testfall haben. Ich akzeptiere keine Duplikate. Dadurch wird sichergestellt, dass keine doppelten Ergebnisse zum Testen verschiedener Codeeinträge verwendet werden. Es ist alles sehr gut zu sagen, dass Ihr Code funktioniert, es ist eine andere Sache, um es zu beweisen.
5. Kürzester Code gewinnt.
Ich ändere dies in einen Beliebtheitswettbewerb. Ich möchte lieber sehen, wer dies tun kann, ohne an der Byte-Zählung teilnehmen zu müssen. Also werde ich dies zusammen mit einer Prämie nach dem 28. Februar 2014 vergeben.
#000000 => #0051BA