You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
#!/usr/bin/python
|
|
|
|
import os, argparse, subprocess
|
|
|
|
parser = argparse.ArgumentParser(description='Batch-resizes images.')
|
|
|
|
parser.add_argument('images', metavar='IMAGE', type=str, nargs='+',
|
|
help='images to resize')
|
|
|
|
parser.add_argument('-s', dest='size', action='store', default="40%",
|
|
help='size specification to resize to (ImageMagick convert syntax)')
|
|
|
|
parser.add_argument('-t', dest='type', action='store', default="tif",
|
|
help='filetype to convert to (defaults to TIFF)')
|
|
|
|
args = parser.parse_args()
|
|
options = vars(args)
|
|
|
|
for image in options['images']:
|
|
base_name = os.path.splitext(os.path.basename(image))[0]
|
|
base_path = os.path.dirname(image)
|
|
target_path = "%s/out" % base_path
|
|
target_file = "%s/%s.%s" % (target_path, base_name, options['type'])
|
|
|
|
try:
|
|
os.makedirs(target_path)
|
|
except:
|
|
pass
|
|
|
|
result = subprocess.call(["convert", image, "-resize", options['size'], target_file])
|
|
|
|
if result == 0:
|
|
print "Successfully completed '%s' => '%s'" % (image, target_file)
|
|
else:
|
|
print "Failed conversion for '%s' with error code %d." % (image, result)
|