Skip to content

Commit

Permalink
[FIX] IMG to WebP 관련 오류 수정, search_file_format return값에 맞춰 데이터 수정함.
Browse files Browse the repository at this point in the history
  • Loading branch information
C4NU committed Sep 11, 2023
1 parent 3accf8a commit 3fe9d1d
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 78 deletions.
Binary file modified Result/01.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Result/M10-01.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 37 additions & 40 deletions app_window/webp_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
73 changes: 35 additions & 38 deletions webp/webp_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 3fe9d1d

Please sign in to comment.