Animazioni con tutti i colori


11

L'anno scorso, c'è stata una sfida molto popolare per creare un'immagine contenente ogni colore RGB a 24 bit .

La mia sfida è quella di creare un'animazione fluida (diciamo 24 frame / s), in cui il colore di ogni pixel di ogni frame è unico. Consentirò anche la duplicazione dei colori purché ogni colore appaia lo stesso numero di volte (maggiore di 0) , poiché altrimenti l'animazione dovrà essere breve o le cornici piccole.

Ho prodotto alcuni esempi qui , basati sulla soluzione vincente alla versione 2d. Sfortunatamente, sembra che non puoi incorporare video, quindi i link dovranno fare.


1
Qualcuno ha già realizzato un'animazione in questa risposta dalla domanda collegata. Non sono sicuro che soddisfi i criteri, però.
mbomb007,

1
Un po 'più di specifiche tecniche sarebbe bello. Cosa significa "creare"? Renderizzare un video su disco? Visualizza un'animazione in tempo reale?
mınxomaτ,

Potresti usare un gif ...
wizzwizz4,

1
@ wizzwizz4 una GIF non può contenere più di 256 colori; così puoi creare un'immagine 16x16 con colori diversi per ogni pixel e non lasciare spazio per l'animazione.
Tito,

Risposte:


4

matematica

Questa è un'implementazione semplice con ogni colore rgb che occupa un'intersezione in una griglia di 256 per 256 per 256 unità.

Il jerkiness sembra essere un artefatto del video, non un errore nei dati, che dovrebbe essere esatto.

i valori rossi aumentano verso il basso, i valori verdi aumentano verso destra e i valori blu aumentano per fotogramma.

Forse mescolerò le cose più tardi.

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

Clip QuickTime


Questo è sconcertante. Funziona per me e le autorizzazioni sono impostate per chiunque possa accedervi. Sei in grado di riprodurre altri video su vimeo.com?
DavidC,

Funziona ora, per qualche motivo.
Fatalizza il

felice di sentirlo.
DavidC,

0

PHP (+ HTML) + JavaScript

La parte 1
genera 256 immagini con valori rossi distinti da 0 a 255;
valore verde = indice di riga, valore blu = indice di colonna

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);}

Nota : a seconda dell'implementazione di PHP, ciò potrebbe generare un errore interno del server.
In tal caso, prendi il numero più basso di immagini che sono già state create, inserisci <number>,dopo$r= ed esegui di nuovo.

Parte 2
scorre queste immagini da 0 a 255 e ritorno (0 e 255 prendendo 2 fotogrammi ciascuno)

<img><script>r=d=0;setInterval(()=>{document.images[0].src=r+".png",(d?!r--:(++r)>=256)?r-=(d=!d)?1:-1:r},40);</script>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.