I want to batch process images but I have a very specific task that I want to do

  1. I do not want to change image type
  2. I want to make them black and white
  3. I want it to create/preserve images and sub folder structure

I did this in Photoshop but it did not preserve folders and sub folder content it just threw every converted file in one directory.

My only hope is Linux :D

Thank you in advance!

You can see different discussion about this here but Basharat Sial worked for me


  • And the images are in which format: RAW, TIFF, JPEG? Please edit your question with the information.
    – user68186
    May 10, 2013 at 20:02
  • @levan Convert images in place or create a new directory structure? May 10, 2013 at 21:16
  • Do not quite understand what you mean what I want is this for example main folder "F1" contains 4 different sub folders "2003" "2004" "2005" and "2006" and all of this sub folders Constantine 100-120 files so what I want is the new black and white files have the same structure as they where I do not care if it will overwrite or create a new folder all I care is them to be black and white and be in the same folders as they were for example if williams 2003.png was in "2003" I want the new file to be in "2003" as well
    – Levan
    May 10, 2013 at 21:21

2 Answers 2


We can use convert command to convert images to black & white:

convert -colorspace GRAY image.png b-w_image.png

Where image.png is the input image and b-w_image.png is output imgage.

Combining this command with find we can create a bash one liner to convert all the images found under parent directory.

Open terminal by hitting Ctrl+Alt+T, cd to parent/main directory and run the following command:

for img in $(find . -iname '*.png'); do echo -n "Converting $img"; convert -colorspace GRAY $img $img && echo ' [Done]'; done

It will convert and overwrite all the images under parent directory. I will suggest to test it on some temporary images and if you're satisfied with the results than run it on actual images.

  • I think I love you worked like a charm Thank you very much
    – Levan
    May 10, 2013 at 21:52

-monochrome is an option if you want binary black and white (1bit per pixel).

It uses some smart dithering and generates very visible output:

convert -monochrome in.png out.png


enter image description here


enter image description here

To maintain directory structure, you will have to script it up as mentioned by Basharat.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .