Added function to convert image compatible with qlabel.

This commit is contained in:
Mr Finchum 2025-01-08 15:38:03 +01:00
parent 8e56565b29
commit 1d43b76bc4
3 changed files with 30 additions and 18 deletions

View file

@ -1,6 +1,10 @@
# Changelog
## 0.6.x
### 0.6.5-a
- No breaking changes to backward compatibility yet.
- Updated the `process` function: an image can now be returned in a modified form without saving. It is returned as a Qt image, which is required for the new UI functionality.
### 0.6.4
- Released a stable-ish version to ensure compatibility with the current GUI in OptimaLab35 (v0.1.0).
- This version serves as a baseline before potential breaking changes in future updates.

View file

@ -22,13 +22,13 @@ class OptimaManager:
data_for_exif["date_time_original"] = new_time.strftime("%Y:%m:%d %H:%M:%S")
return data_for_exif
def process_image(self,
def process_image(self, #split into two classes, one for modification for one saving..
image_input_file,
image_output_file,
file_type,
quality,
compressing,
optimize,
file_type = "jpg",
quality = 90,
compressing = 6,
optimize = False,
resize = None,
watermark = None,
font_size = 2,
@ -37,7 +37,8 @@ class OptimaManager:
contrast = None,
dict_for_exif = None,
gps = None,
copy_exif = False):
copy_exif = False,
save = True):
# Partly optimized by ChatGPT
# Open the image file
with self.image_processor.open_image(image_input_file) as img:
@ -47,7 +48,7 @@ class OptimaManager:
# Resize
if resize is not None:
processed_img = self.image_processor.resize_image(
image=processed_img, percent=resize
image=processed_img, percent = resize
)
# Watermark
@ -97,6 +98,7 @@ class OptimaManager:
except Exception:
print("Copying EXIF data selected, but no EXIF data is available in the original image file.")
if save:
# Save the processed image
self.image_processor.save_image(
image = processed_img,
@ -107,3 +109,5 @@ class OptimaManager:
png_compressing = compressing,
optimize = optimize
)
else:
return self.image_processor.convert_pil_to_qtimage(processed_img)

View file

@ -1,4 +1,4 @@
from PIL import Image, ImageDraw, ImageFont, ImageEnhance
from PIL import Image, ImageDraw, ImageFont, ImageEnhance, ImageQt
import piexif
from fractions import Fraction
@ -91,6 +91,10 @@ class ImageProcessor:
except Exception as e:
print(f"Failed to save image: {e}")
def convert_pil_to_qtimage(self, pillow_image):
qt_image = ImageQt.ImageQt(pillow_image)
return qt_image
class ExifHandler:
"""Function using piexif are here."""
def __init__(self):