Je génère des données aléatoires et j'essaie de les convertir en une image PNG en utilisant:
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:-
Cette commande affiche toujours une image grisâtre avec quelques pixels RVB. Qu'est-ce que je fais mal ?
Mon objectif final est de générer au moins une image avec des données aléatoires.
command-line
display
images
random
pxoto
la source
la source
Réponses:
Tout d'abord, vous devez alimenter
display RGB:-
des octets bruts, pas une chaîne hexadécimale codée comme vous construisez avec cehexdump | sed | tr
pipeline.Deuxièmement, vous ne lui donnez pas assez d'octets: vous avez besoin de 3 octets par pixel, un pour chaque canal de couleur.
Cela fait ce que vous voulez:
Pour enregistrer directement au format PNG, vous pouvez procéder comme suit:
Voici une image de sortie typique:
Si vous souhaitez créer une animation, il n'est pas nécessaire de créer et d'enregistrer des images individuelles. Vous pouvez alimenter un flux d'octets brut directement vers ffmpeg / avconv, par exemple
la source