İlk olarak, display RGB:-
o hexdump | sed | tr
boru hattıyla inşa ettiğiniz gibi kodlanmış bir onaltılık dize değil, ham baytları beslemeniz gerekir .
İkincisi, yeterli bayt vermiyorsunuz: Her renk kanalı için bir tane olmak üzere piksel başına 3 bayta ihtiyacınız var.
İstediğinizi yapar:
mx=320;my=256;head -c "$((3*mx*my))" /dev/urandom | display -depth 8 -size "${mx}x${my}" RGB:-
Doğrudan PNG'ye kaydetmek için şunları yapabilirsiniz:
mx=320;my=256;head -c "$((3*mx*my))" /dev/urandom | convert -depth 8 -size "${mx}x${my}" RGB:- random.png
İşte tipik bir çıktı görüntüsü:
Bir animasyon yapmak istiyorsanız, tek tek kareler oluşturmanıza ve kaydetmenize gerek yoktur. Ham bayt akışını doğrudan ffmpeg / avconv'a, ör.
mx=320; my=256; nframes=100; dd if=/dev/urandom bs="$((mx*my*3))" count="$nframes" | avconv -r 25 -s "${mx}x${my}" -f rawvideo -pix_fmt rgb24 -i - random.mp4