Estou gerando dados aleatórios e tentando convertê-los em uma imagem 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 sempre mostra uma imagem acinzentada com alguns pixels RGB. O que estou fazendo de errado ?
Meu objetivo final é gerar pelo menos uma imagem com dados aleatórios.
command-line
display
images
random
pxoto
fonte
fonte
Respostas:
Primeiro, você precisa alimentar
display RGB:-
bytes brutos, não uma sequência hexadecimal codificada como a que você está construindo com essehexdump | sed | tr
pipeline.Em segundo lugar, você não está dando bytes suficientes: você precisa de 3 bytes por pixel, um para cada canal de cores.
Isso faz o que você deseja:
Para salvar diretamente no PNG, você pode fazer o seguinte:
Aqui está uma imagem de saída típica:
Se você deseja fazer uma animação, não há necessidade de criar e salvar quadros individuais. Você pode alimentar um fluxo de bytes brutos direto para ffmpeg / avconv, por exemplo
fonte