Search code examples
linuximagecommandlinepixel

Linux create Image pixel by pixel in command line


Is there a way in Linux to create an image and construct it pixel by pixel directly in command line?

I tried imagemagick, but its only possible to create a blank image without set pixels seperate.

Any Idea?


Solution

  • You can use shell scripting to build a ppm image.

    echo "P2"
    echo "# Column (width) Row (height)"
    echo "$1 $1\n1"
    
    t=`expr $1 / 8`
    for i in `seq 1 4`; do
        for i in `seq 1 $t`; do
            for i in `seq 1 4`; do
                for i in `seq 1 $t`; do echo -n "1 "; done
                for i in `seq 1 $t`; do echo -n "0 "; done
            done
            echo
        done
        for i in `seq 1 $t`; do
            for i in `seq 1 4`; do
                for i in `seq 1 $t`; do echo -n "0 "; done
                for i in `seq 1 $t`; do echo -n "1 "; done
            done
            echo
        done
    done
    

    To run the above code do:

    $ sh filename.sh 120 > im1.ppm ; eog im1.ppm
    

    The result is: enter image description here