from PIL import Image, ImageFile
Image.MAX_IMAGE_PIXELS = 200_000_000  # 200 megapixels max — prevents decompression bomb DoS attacks
ImageFile.LOAD_TRUNCATED_IMAGES = True
import sys
import json

def resize_image(input_image_path, output_image_path, max_size):
    with Image.open(input_image_path) as img:
        img.thumbnail(max_size)  # Resize while keeping aspect ratio
        img.save(output_image_path)

if __name__ == "__main__":
    # Read JSON data from stdin
    input_data = json.load(sys.stdin)

    input_path = input_data['input_file']
    output_path = input_data['output_file']
    new_size = (input_data['width'],input_data['height'])

    try:
        # Call the function to resize the image
        resize_image(input_path, output_path, new_size)

        # Return success message in JSON format
        response = {'status': True}
    except Exception as e:
        response = {'status': False, 'message': str(e)}

    # Output the result in JSON format
    print(json.dumps(response))