From ce4b075fc3d40f732a5056bf11925fe97a92d2b2 Mon Sep 17 00:00:00 2001 From: Lakshmiprasanna8008 <158503837+Lakshmiprasanna8008@users.noreply.github.com> Date: Fri, 3 May 2024 21:41:08 +0530 Subject: [PATCH 1/2] Create Task4 In Example usage insted of wp1966881.jpg give input image. --- Konda Lakshmi Prasanna/Task4 | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Konda Lakshmi Prasanna/Task4 diff --git a/Konda Lakshmi Prasanna/Task4 b/Konda Lakshmi Prasanna/Task4 new file mode 100644 index 0000000..b8ed498 --- /dev/null +++ b/Konda Lakshmi Prasanna/Task4 @@ -0,0 +1,52 @@ +from PIL import Image +import os + +def get_size_format(b, factor=1024, suffix="B"): + """ + Scale bytes to its proper byte format. + e.g: 1253656 => '1.20MB', 1253656678 => '1.17GB' + """ + for unit in ["", "K", "M", "G", "T", "P", "E", "Z"]: + if b < factor: + return f"{b:.2f}{unit}{suffix}" + b /= factor + return f"{b:.2f}Y{suffix}" + +def compress_img(image_name, new_size_ratio=0.9, quality=90, width=None, height=None, to_jpg=True): + # Load the image into memory + img = Image.open(image_name) + + # Print the original image shape + print("[*] Image shape:", img.size) + + # Get the original image size in bytes + image_size = os.path.getsize(image_name) + print("[*] Size before compression:", get_size_format(image_size)) + + if new_size_ratio < 1.0: + # If resizing ratio is below 1.0, multiply width & height with this ratio to reduce image size + img = img.resize((int(img.size[0] * new_size_ratio), int(img.size[1] * new_size_ratio)), Image.ANTIALIAS) + elif width and height: + # If width and height are set, resize with them instead + img = img.resize((width, height), Image.ANTIALIAS) + + # Split the filename and extension + filename, ext = os.path.splitext(image_name) + + # Make a new filename appending "_compressed" to the original file name + if to_jpg: + # Change the extension to JPEG + new_filename = f"{filename}_compressed.jpg" + else: + # Retain the same extension of the original image + new_filename = f"{filename}_compressed{ext}" + + # Save the compressed image + img.save(new_filename, optimize=True, quality=quality) + + # Print the new image shape + print("[+] New Image shape:", img.size) + print(f"[*] Compressed image saved as: {new_filename}") + +# Example usage: +compress_img("wp1966881.jpg", new_size_ratio=0.8, quality=80, width=800, height=600) From 909666e48957936cfec4c848710b1d92cdee11aa Mon Sep 17 00:00:00 2001 From: Lakshmiprasanna8008 <158503837+Lakshmiprasanna8008@users.noreply.github.com> Date: Sun, 5 May 2024 14:08:41 +0530 Subject: [PATCH 2/2] Create README.md --- Konda Lakshmi Prasanna/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Konda Lakshmi Prasanna/README.md diff --git a/Konda Lakshmi Prasanna/README.md b/Konda Lakshmi Prasanna/README.md new file mode 100644 index 0000000..24601e1 --- /dev/null +++ b/Konda Lakshmi Prasanna/README.md @@ -0,0 +1,4 @@ +mage Compression: + +Developed a Python program for compressing images while maintaining quality by exploring compression techniques like RLE and DCT and allowing users to adjust compression quality, support various image formats, and provide output options. Optionally, include a user interface. +This Python script utilizes the Boston housing dataset to perform linear regression. After splitting the data into training and testing sets, it trains a linear regression model on the training data and evaluates its performance on both sets. It calculates the model's scores for training and testing data. Additionally, it visualizes the residuals, highlighting discrepancies between predicted and actual values. This analysis aids in assessing the model's fit and identifying potential areas for improvement, crucial for understanding predictive accuracy and model effectiveness in real-world applications.