|
import argparse |
|
|
|
from image_processor import process_images |
|
|
|
|
|
def main(): |
|
parser = argparse.ArgumentParser( |
|
description="Process multiple images from a directory with options for cropping, background removal, resizing, and adding a background.") |
|
parser.add_argument("-i", "--input_dir", type=str, required=True, |
|
help="Directory containing the images to be processed.") |
|
parser.add_argument("-o", "--output_dir", type=str, required=True, |
|
help="Directory where processed images will be saved.") |
|
parser.add_argument("-c", "--crop", action="store_true", |
|
help="Crop the images.") |
|
parser.add_argument("-b", "--background_removal", action="store_true", |
|
help="Remove the background from the images.") |
|
parser.add_argument("-r", "--resize", type=str, |
|
help="Resize the image to fit within AxB pixels while maintaining aspect ratio. Format: 'AxB'") |
|
parser.add_argument("-p", "--padding", type=int, default=0, |
|
help="Number of padding pixels to add around the image.") |
|
parser.add_argument("-bg", "--background", type=str, default=None, |
|
help="Add a background to the image. Accepts color names, hex codes, or paths to image files.") |
|
|
|
args = parser.parse_args() |
|
|
|
resize_dimensions = None |
|
if args.resize: |
|
try: |
|
width, height = map(int, args.resize.split('x')) |
|
resize_dimensions = (width, height) |
|
except ValueError: |
|
print("Invalid format for resize dimensions. Please use 'AxB'.") |
|
return |
|
|
|
process_images( |
|
input_dir=args.input_dir, |
|
output_dir=args.output_dir, |
|
crop=args.crop, |
|
remove_bg=args.background_removal, |
|
resize=resize_dimensions, |
|
padding=args.padding, |
|
background=args.background |
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |