Animationen mit allen Farben

11

Letztes Jahr gab es eine sehr beliebte Herausforderung , ein Bild zu erstellen, das jede 24-Bit-RGB-Farbe enthält .

Meine Herausforderung besteht darin, eine flüssige Animation (z. B. 24 Bilder / s) zu erstellen, bei der die Farbe jedes Pixels jedes Bilds einzigartig ist. Ich erlaube auch das Duplizieren von Farben, solange jede Farbe gleich oft erscheint (größer als 0) , da sonst die Animation kurz oder die Frames klein sein müssen.

Ich habe hier einige Beispiele erstellt , die auf der Gewinnerlösung für die 2d-Version basieren. Leider scheint es, dass Sie keine Videos einbetten können, daher müssen Links reichen.

sobe86
quelle
1
Jemand hat in dieser Antwort bereits eine Animation aus der verknüpften Frage erstellt. Ich bin mir jedoch nicht sicher, ob es die Kriterien erfüllt.
mbomb007
1
Etwas mehr technische Daten wären schön. Was bedeutet "erschaffen"? Ein Video auf Disc rendern? Echtzeitanimation anzeigen?
mınxomaτ
Sie könnten ein
GIF
1
@ wizzwizz4 Ein GIF kann nicht mehr als 256 Farben enthalten. So können Sie für jedes Pixel ein 16x16-Bild mit unterschiedlichen Farben erstellen - und haben keinen Platz mehr für Animationen.
Titus

Antworten:

4

Mathematica

Dies ist eine einfache Implementierung, bei der jede RGB-Farbe einen Schnittpunkt in einem Raster von 256 x 256 x 256 Einheiten einnimmt.

Das Ruckeln scheint ein Artefakt des Videos zu sein, kein Fehler in den Daten, der genau sein sollte.

Die roten Werte steigen nach unten, die grünen nach rechts und die blauen Werte je nach Bild.

Vielleicht werde ich die Dinge später durcheinander bringen.

f@b_ := Image@Table[{r, g, b}/255, {r, 0, 255}, {g, 0, 255}]
Export["c.mov", Table[f@b, {b, 0, 255}]]

QuickTime- Clip

DavidC
quelle
Das ist rätselhaft. Es funktioniert für mich und die Berechtigungen sind so festgelegt, dass jeder darauf zugreifen kann. Können Sie andere Videos auf vimeo.com abspielen?
DavidC
Aus irgendeinem Grund funktioniert es jetzt.
Fatalize
froh das zu hören.
DavidC
0

PHP (+ HTML) + JavaScript

Teil 1
erzeugt 256 Bilder mit unterschiedlichen Rotwerten von 0 bis 255;
grüner Wert = Zeilenindex, blauer Wert = Spaltenindex

for($r=$h=256;$r--;){$i=imagecreatetruecolor($g=$h,$h);for(;$g--;)for($b=$h;$b--;)imagesetpixel($i,$g,$b,imagecolorallocate($i,$r,$g,$b));imagepng($i,"$r.png");imagedestroy($i);}

Hinweis : Abhängig von Ihrer PHP-Implementierung kann dies zu einem internen Serverfehler führen.
Ist dies der Fall, nehmen Sie die niedrigste Zahl der Bilder , die bereits erstellt wurden, Einsatz <number>,nach $r=und erneut ausführen.

Teil 2
durchläuft diese Bilder von 0 bis 255 und zurück (0 und 255 mit jeweils 2 Bildern)

<img><script>r=d=0;setInterval(()=>{document.images[0].src=r+".png",(d?!r--:(++r)>=256)?r-=(d=!d)?1:-1:r},40);</script>
Titus
quelle