diff --git a/Result/01.jpeg b/Result/01.jpeg index 2f8df6e..1965e7e 100644 Binary files a/Result/01.jpeg and b/Result/01.jpeg differ diff --git a/Result/M10-01.jpeg b/Result/M10-01.jpeg index 25418ae..f79e94e 100644 Binary files a/Result/M10-01.jpeg and b/Result/M10-01.jpeg differ diff --git a/app_window/webp_window.py b/app_window/webp_window.py index 5c167ec..4c46196 100644 --- a/app_window/webp_window.py +++ b/app_window/webp_window.py @@ -210,46 +210,43 @@ def save_file(self): save_path = QFileDialog.getExistingDirectory(None, 'Save Directory') - try: - if save_path: - # 01 WebP 이미지로만 변환할 때 - if self.conversion_option: - for index in range(self.listWidget.count()): - self.converter.convert_image_to_webp(self.listWidget.item(index).text(), save_path + '/', - self.file_name[index], self.loseless_option, - self.image_quality_option, - exif_option=self.exif_option, - icc_profile_option=self.icc_profile_option, - exact_option=self.exact_option, watermark_text="", - exif_view_option=self.exif_padding_option, - conversion_option=self.conversion_option, - font_path=self.__selected_font) - - # 02 Exif Padding 이미지로만 변환할때 - elif self.exif_padding_option: - for index in range(self.listWidget.count()): - self.converter.convert_exif_image(file_path=self.listWidget.item(index).text(), - save_path=save_path + '/', - save_name=self.file_name[index], - file_format_option=self.save_format_index, - font_path=self.__selected_font) - - else: - print("옵션 선택 에러 / 다시 선택해주세요") - - if platform.system() == "Windows": # Windows - os.startfile(save_path) - elif platform.system() == "Darwin": # macOS - os.system("open " + '"' + save_path + '"') - - self.listWidget.clear() - self.file_name.clear() - except: - if platform.system() == "Windows": - os.system('pause') - elif platform.system() == "Darwin": - input("엔터를 눌러 진행...") - return + + if save_path: + # 01 WebP 이미지로만 변환할 때 + if self.conversion_option: + for index in range(self.listWidget.count()): + self.converter.convert_image_to_webp(file_path=self.listWidget.item(index).text(), + save_path=save_path + '/', + save_name=self.file_name[index], + loseless_option=self.loseless_option, + image_quality_option=self.image_quality_option, + exif_option=self.exif_option, + icc_profile_option=self.icc_profile_option, + exact_option=self.exact_option, watermark_text="", + exif_view_option=self.exif_padding_option, + conversion_option=self.conversion_option, + font_path=self.__selected_font) + + # 02 Exif Padding 이미지로만 변환할때 + elif self.exif_padding_option: + for index in range(self.listWidget.count()): + self.converter.convert_exif_image(file_path=self.listWidget.item(index).text(), + save_path=save_path + '/', + save_name=self.file_name[index], + file_format_option=self.save_format_index, + font_path=self.__selected_font) + + else: + print("옵션 선택 에러 / 다시 선택해주세요") + + if platform.system() == "Windows": # Windows + os.startfile(save_path) + elif platform.system() == "Darwin": # macOS + os.system("open " + '"' + save_path + '"') + + self.listWidget.clear() + self.file_name.clear() + def on_toggle_conversion_enable(self, state): self.conversion_option = bool(state == Qt.Checked) diff --git a/webp/webp_module.py b/webp/webp_module.py index 7a13172..be3217f 100644 --- a/webp/webp_module.py +++ b/webp/webp_module.py @@ -40,47 +40,44 @@ def fix_orientation(image): def convert_image_to_webp(file_path, save_path, save_name, loseless_option, image_quality_option, exif_option, icc_profile_option, exact_option, watermark_text, exif_view_option, conversion_option, font_path): - condition, file_format = Converter.search_file_format(file_path) + file_format = Converter.search_file_format(file_path) # note(komastar) : file_format : 'jpg', 'png'... - - if condition: - # 01 일반 WebP 형식 Image로 변환할 때 - if conversion_option: - image = Image.open(file_path) - image = Converter.fix_orientation(image) - print("Orientation Complete") - dest = save_path + save_name + ".webp" - - # 여기서 exif 데이터의 특정 값이 존재하지 않으면 바로 실패함 / 옵션을 선택하지 않아도 읽어오기에 무조건적으로 뻗음 - try: - exif_data = image.getexif() - print("Get Exif Data") - except: - print(f'no exif data {save_name}') - exif_option = False - exif_data = None - - icc_profile = image.info['icc_profile'] - print("Get Icc profile") - - # image = self.watermark.InsertWatermark(image=image, fontColor=watermarkColor, watermarkText=watermarkText) - - #image = image.convert("RGB") - - if exif_option: - if icc_profile_option: - image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, - exif=exif_data, exact=exact_option, icc_profile=icc_profile) - else: - image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, - exif=exif_data, exact=exact_option) + + # 01 일반 WebP 형식 Image로 변환할 때 + if conversion_option: + image = Image.open(file_path).convert("RGB") + dest = save_path + save_name + ".webp" + + # 여기서 exif 데이터의 특정 값이 존재하지 않으면 바로 실패함 / 옵션을 선택하지 않아도 읽어오기에 무조건적으로 뻗음 + try: + exif_data = image.getexif() + print("Get Exif Data") + except: + print(f'no exif data {save_name}') + exif_option = False + exif_data = None + + icc_profile = image.info['icc_profile'] + print("Get Icc profile") + + # image = self.watermark.InsertWatermark(image=image, fontColor=watermarkColor, watermarkText=watermarkText) + + #image = image.convert("RGB") + image = Converter.fix_orientation(image) + if exif_option: + if icc_profile_option: + image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, + exif=exif_data, exact=exact_option, icc_profile=icc_profile) else: - if icc_profile_option: - image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, + image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, + exif=exif_data, exact=exact_option) + else: + if icc_profile_option: + image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, exact=exact_option, icc_profile=icc_profile) - else: - image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, - exact=exact_option) + else: + image.save(dest, format="webp", loseless=loseless_option, quality=image_quality_option, + exact=exact_option) def convert_exif_image(self, file_path, save_path, save_name, file_format_option, font_path): file_format = Converter.search_file_format(file_path)