Generating a random 24bit bitmap

W ?= 2048
H ?= 1536
S ?= urandom
D ?= 255
P ?= 6
( echo "P$P"; echo "$W $H"; echo "$D" ) > out.ppm && >&2 echo "Done writing header" || >&2 "Failed writing header"; \
    for i in `seq $H`; do \
        dd status=none if=/dev/$S bs=3 count=$W >> out.ppm || >&2 echo "dd failed at line $$i out of $H"; \
        >/dev/null expr $$i % 100 || >&2 echo "done $$i lines out of $H"; \
    done;

Can be converted with ppmtobmp.