Generuję losowe dane i próbuję przekonwertować je na obraz PNG, używając:
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:-
To polecenie zawsze pokazuje szarawy obraz z niektórymi pikselami RGB. Co ja robię źle ?
Moim ostatnim celem jest wygenerowanie co najmniej jednego obrazu z losowymi danymi.
command-line
display
images
random
pxoto
źródło
źródło
Odpowiedzi:
Po pierwsze, musisz
display RGB:-
podać nieprzetworzone bajty, a nie zakodowany ciąg szesnastkowy, tak jak budujesz z tymhexdump | sed | tr
potokiem.Po drugie, nie podajesz wystarczającej ilości bajtów: potrzebujesz 3 bajtów na piksel, po jednym na każdy kanał koloru.
Robi to, co chcesz:
Aby zapisać bezpośrednio w PNG, możesz to zrobić:
Oto typowy obraz wyjściowy:
Jeśli chcesz zrobić animację, nie musisz tworzyć i zapisywać pojedynczych klatek. Możesz podać nieprzetworzony strumień bajtów bezpośrednio do ffmpeg / avconv, np
źródło