Estoy generando datos aleatorios e intento convertirlos en una imagen PNG usando:
head -c 1MB < /dev/urandom | hexdump -e '16/1 "_x%02X"' | sed 's/_/\\/g; s/\\x //g; s/.*/ "&"/' | tr -d "\"" | display -depth 8 -size 1000x1000+0 rgb:-
Este comando siempre muestra una imagen grisácea con algunos píxeles RGB. Qué estoy haciendo mal ?
Mi objetivo final es generar al menos una imagen con datos aleatorios.
command-line
display
images
random
pxoto
fuente
fuente
Respuestas:
En primer lugar, debe alimentar
display RGB:-
bytes sin procesar, no una cadena hexadecimal codificada como la que está construyendo con esahexdump | sed | tr
tubería.En segundo lugar, no le está dando suficientes bytes: necesita 3 bytes por píxel, uno para cada canal de color.
Esto hace lo que quieres:
Para guardar directamente en PNG, puede hacer esto:
Aquí hay una imagen de salida típica:
Si desea hacer una animación, no es necesario crear y guardar cuadros individuales. Puede alimentar una secuencia de bytes sin procesar directamente a ffmpeg / avconv, p. Ej.
fuente