mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-22 09:18:18 +00:00
Add explicit method for getting qimage to ProcessingImage
This commit is contained in:
@@ -67,13 +67,13 @@ def run_image_processors(data, coverartimage):
|
|||||||
tags_image = image.copy()
|
tags_image = image.copy()
|
||||||
for processor in tags_queue:
|
for processor in tags_queue:
|
||||||
processor.run(tags_image, ProcessingTarget.TAGS)
|
processor.run(tags_image, ProcessingTarget.TAGS)
|
||||||
tags_data = tags_image.get_result(default_format=True)
|
tags_data = tags_image.get_result()
|
||||||
coverartimage.set_tags_data(tags_data)
|
coverartimage.set_tags_data(tags_data)
|
||||||
if config.setting['save_images_to_files']:
|
if config.setting['save_images_to_files']:
|
||||||
file_image = image.copy()
|
file_image = image.copy()
|
||||||
for processor in file_queue:
|
for processor in file_queue:
|
||||||
processor.run(file_image, ProcessingTarget.FILE)
|
processor.run(file_image, ProcessingTarget.FILE)
|
||||||
file_data = file_image.get_result(default_format=True)
|
file_data = file_image.get_result()
|
||||||
coverartimage.set_external_file_data(file_data)
|
coverartimage.set_external_file_data(file_data)
|
||||||
log.debug(
|
log.debug(
|
||||||
"Image processing for %s finished in %d ms",
|
"Image processing for %s finished in %d ms",
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ class ResizeImage(ImageProcessor):
|
|||||||
# no resizing needed
|
# no resizing needed
|
||||||
return
|
return
|
||||||
|
|
||||||
qimage = image.get_result()
|
qimage = image.get_qimage()
|
||||||
if stretch:
|
if stretch:
|
||||||
scaled_image = qimage.scaled(width_resize, height_resize, Qt.AspectRatioMode.IgnoreAspectRatio)
|
scaled_image = qimage.scaled(width_resize, height_resize, Qt.AspectRatioMode.IgnoreAspectRatio)
|
||||||
elif crop:
|
elif crop:
|
||||||
|
|||||||
@@ -63,12 +63,12 @@ class ProcessingImage:
|
|||||||
else:
|
else:
|
||||||
self._qimage = QImage.fromData(image)
|
self._qimage = QImage.fromData(image)
|
||||||
|
|
||||||
def get_result(self, image_format=None, default_format=False, quality=90):
|
def get_qimage(self):
|
||||||
|
return self._qimage
|
||||||
|
|
||||||
|
def get_result(self, image_format=None, quality=90):
|
||||||
if image_format is None:
|
if image_format is None:
|
||||||
if not default_format:
|
image_format = self.info.format
|
||||||
return self._qimage
|
|
||||||
else:
|
|
||||||
image_format = self.info.format
|
|
||||||
buffer = QBuffer()
|
buffer = QBuffer()
|
||||||
if not self._qimage.save(buffer, image_format, quality=quality):
|
if not self._qimage.save(buffer, image_format, quality=quality):
|
||||||
raise CoverArtEncodingError(f"Failed to encode into {image_format}")
|
raise CoverArtEncodingError(f"Failed to encode into {image_format}")
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ class ImageProcessorsTest(PicardTestCase):
|
|||||||
image = ProcessingImage(create_fake_image(size[0], size[1], 'jpg'))
|
image = ProcessingImage(create_fake_image(size[0], size[1], 'jpg'))
|
||||||
processor = ResizeImage()
|
processor = ResizeImage()
|
||||||
processor.run(image, ProcessingTarget.TAGS)
|
processor.run(image, ProcessingTarget.TAGS)
|
||||||
new_size = (image.get_result().width(), image.get_result().height())
|
new_size = (image.get_qimage().width(), image.get_qimage().height())
|
||||||
new_info_size = (image.info.width, image.info.height)
|
new_info_size = (image.info.width, image.info.height)
|
||||||
self.assertEqual(new_size, expected_size)
|
self.assertEqual(new_size, expected_size)
|
||||||
self.assertEqual(new_info_size, expected_size)
|
self.assertEqual(new_info_size, expected_size)
|
||||||
@@ -285,7 +285,7 @@ class ImageProcessorsTest(PicardTestCase):
|
|||||||
image = ProcessingImage(create_fake_image(100, 100, format))
|
image = ProcessingImage(create_fake_image(100, 100, format))
|
||||||
processor = ConvertImage()
|
processor = ConvertImage()
|
||||||
processor.run(image, ProcessingTarget.TAGS)
|
processor.run(image, ProcessingTarget.TAGS)
|
||||||
new_image = image.get_result(default_format=True)
|
new_image = image.get_result()
|
||||||
new_info = imageinfo.identify(new_image)
|
new_info = imageinfo.identify(new_image)
|
||||||
self.assertIn(new_info.format, ConvertImage._format_aliases[expected_format])
|
self.assertIn(new_info.format, ConvertImage._format_aliases[expected_format])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user