Difference between revisions of "Imagemagick Batch Processing"
From Tomelec
								
												
				 (→Shellscript batch processing)  | 
				 (→Shellscript batch processing)  | 
				||
| Line 2: | Line 2: | ||
=Shellscript batch processing=  | =Shellscript batch processing=  | ||
| + | The following examples use '''basename $file''' to not overwrite the original file. Replace it by '''$file''' to overwrite the original.  | ||
==Scale a bunch of photos==  | ==Scale a bunch of photos==  | ||
This scales all .JPG files in the directory ../mypics to 2048x1536 pixels. Note that the file extension (.JPG) is case sensitive and will not match .jpg files. The aspect ratio is preserved.  | This scales all .JPG files in the directory ../mypics to 2048x1536 pixels. Note that the file extension (.JPG) is case sensitive and will not match .jpg files. The aspect ratio is preserved.  | ||
  <nowiki>for file in ../mypics/*.JPG; do echo $file; convert "$file" -scale 2048x1536 -quality 85 `basename "$file"`; done</nowiki>  |   <nowiki>for file in ../mypics/*.JPG; do echo $file; convert "$file" -scale 2048x1536 -quality 85 `basename "$file"`; done</nowiki>  | ||
| − | |||
==Crop out a section of PNG files==  | ==Crop out a section of PNG files==  | ||
| − | This cuts out the upper left 6x17 pixels. '''+0+0''' adjusts the offset  | + | This cuts out the upper left 6x17 pixels. '''+0+0''' adjusts the offset. Use '''-depth 8''' to get 8bit PNGs instead of 16bit.  | 
| − |   <nowiki>for file in ../my_pngs/*.png; do echo $file; convert $file -crop 6x17+0+0! -depth 8 `basename $file`; done  | + |   <nowiki>for file in ../my_pngs/*.png; do echo $file; convert $file -crop 6x17+0+0! -depth 8 `basename $file`; done</nowiki>  | 
| + | ... can of course be combined with '''-scale''', here with different parameters:  | ||
| + |  <nowiki>for file in ../my_pngs/*.png; do echo $file; convert $file -crop 90x45+0+13 -scale 72x36! -depth 8 `basename $file`; done</nowiki>  | ||
Revision as of 10:40, 2 September 2013
Imagemagick provides powerful tools for image manipulation. These can be easily automated in small shell scripts or command lines.
Shellscript batch processing
The following examples use basename $file to not overwrite the original file. Replace it by $file to overwrite the original.
Scale a bunch of photos
This scales all .JPG files in the directory ../mypics to 2048x1536 pixels. Note that the file extension (.JPG) is case sensitive and will not match .jpg files. The aspect ratio is preserved.
for file in ../mypics/*.JPG; do echo $file; convert "$file" -scale 2048x1536 -quality 85 `basename "$file"`; done
Crop out a section of PNG files
This cuts out the upper left 6x17 pixels. +0+0 adjusts the offset. Use -depth 8 to get 8bit PNGs instead of 16bit.
for file in ../my_pngs/*.png; do echo $file; convert $file -crop 6x17+0+0! -depth 8 `basename $file`; done
... can of course be combined with -scale, here with different parameters:
for file in ../my_pngs/*.png; do echo $file; convert $file -crop 90x45+0+13 -scale 72x36! -depth 8 `basename $file`; done