######################################### ## Camron Blackburn ## Center for Bit and Atoms ## Nov 2019 HMTAA ######################################### import argparse import os def get_args(): parser = argparse.ArgumentParser(description="reformat images in given directory - NOTE this overwrites existing images") parser.add_argument("dir", help="directory with images to compress/scale") return parser.parse_args() def main(img_dir): if not os.path.exists(img_dir): print("directory does not exist!") return for root, dirs, files in os.walk(img_dir): for f in files: base, ext = os.path.splitext(f) if ext in [".jpg", ".png", ".jpeg", ".tiff"]: in_file = os.path.join(root, f) print("scaling and overwriting %s" % in_file) out_file = os.path.join(root, base+".jpg") ffmpeg_cmd = 'ffmpeg -y -i %s -compression_level 100 -vf "scale=950:600:force_original_aspect_ratio=decrease,pad=950:600:(ow-iw)/2:(oh-ih)/2:color=white" %s' % (in_file, out_file) print("RUN COMMAND: ", ffmpeg_cmd) os.system(ffmpeg_cmd) return if __name__ == "__main__": args = get_args() img_dir = args.dir main(img_dir)