Animaciones con todos los colores.

11

El año pasado, hubo un desafío muy popular para crear una imagen que contenga todos los colores RGB de 24 bits .

Mi desafío es crear una animación suave (24 cuadros / s, por ejemplo), donde el color de cada píxel de cada cuadro es único. También permitiré la duplicación de colores siempre que cada color aparezca el mismo número de veces (mayor que 0) , ya que de lo contrario la animación tendrá que ser corta o los cuadros pequeños.

He producido algunos ejemplos aquí , basados ​​en la solución ganadora de la versión 2d. Desafortunadamente, parece que no puedes insertar videos, por lo que los enlaces tendrán que funcionar.

sobe86
fuente
1
Alguien ya hizo una animación en esta respuesta de la pregunta vinculada. Sin embargo, no estoy seguro de si cumple con los criterios.
mbomb007
1
Un poco más de especificaciones técnicas sería bueno. ¿Qué significa "crear"? Renderizar un video al disco? ¿Mostrar una animación en tiempo real?
mınxomaτ
Podrías usar un gif ...
wizzwizz4
1
@ wizzwizz4 un GIF no puede contener más de 256 colores; para que pueda hacer una imagen de 16x16 con diferentes colores para cada píxel, y no tenga espacio para la animación.
Tito

Respuestas:

4

Mathematica

Esta es una implementación sencilla con cada color rgb ocupando una intersección en una cuadrícula de 256 por 256 por 256 unidades.

La sacudida parece ser un artefacto del video, no un error en los datos, lo que debería ser exacto.

los valores rojos aumentan hacia abajo, los valores verdes aumentan hacia la derecha y los valores azules aumentan por cuadro.

Tal vez voy a revolver las cosas más tarde.

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

DavidC
fuente
Esto es desconcertante. Funciona para mí y los permisos están establecidos para que cualquiera pueda acceder a él. ¿Puedes reproducir otros videos en vimeo.com?
DavidC
Funciona ahora, por alguna razón.
Fatalize
alegra oírlo.
DavidC
0

PHP (+ HTML) + JavaScript

La Parte 1
genera 256 imágenes con valores rojos distintos de 0 a 255;
valor verde = índice de fila, valor azul = índice de columna

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 : Dependiendo de su implementación de PHP, esto puede arrojar un error interno del servidor.
Si es así, tome el número más bajo de las imágenes que ya se han creado, inserte <number>,después $r=y vuelva a ejecutar.

Parte 2
recorre estas imágenes de 0 a 255 y regresa (0 y 255 toman 2 cuadros cada una)

<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
fuente