69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
import os
|
|
from PIL import Image
|
|
import io
|
|
|
|
def create_proper_icon():
|
|
try:
|
|
# 기존 아이콘 파일 경로
|
|
original_icon_path = "AutoPercenty3.ico"
|
|
|
|
# 기존 아이콘 파일이 존재하는지 확인
|
|
if not os.path.exists(original_icon_path):
|
|
print("기존 아이콘 파일이 존재하지 않습니다.")
|
|
return False
|
|
|
|
# 아이콘 파일 백업
|
|
backup_icon_path = "AutoPercenty3_backup.ico"
|
|
if os.path.exists(original_icon_path):
|
|
import shutil
|
|
shutil.copy2(original_icon_path, backup_icon_path)
|
|
print(f"기존 아이콘 파일을 {backup_icon_path}로 백업했습니다.")
|
|
|
|
# 기존 아이콘 파일 읽기 시도
|
|
try:
|
|
img = Image.open(original_icon_path)
|
|
print(f"기존 아이콘 파일 정보: {img.format}, {img.size}, {img.mode}")
|
|
except Exception as e:
|
|
print(f"기존 아이콘 파일을 열 수 없습니다: {e}")
|
|
# 간단한 아이콘 생성
|
|
img = Image.new('RGBA', (256, 256), color=(73, 109, 137, 255))
|
|
|
|
# 아이콘 파일을 여러 크기로 저장
|
|
icon_sizes = [(16, 16), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)]
|
|
|
|
# 아이콘 이미지들을 저장할 리스트
|
|
icon_images = []
|
|
|
|
for size in icon_sizes:
|
|
# 원본 이미지를 다양한 크기로 리사이즈
|
|
resized_img = img.resize(size, Image.LANCZOS)
|
|
|
|
# 만약 이미지가 RGBA 형식이 아니라면 RGBA로 변환
|
|
if resized_img.mode != 'RGBA':
|
|
resized_img = resized_img.convert('RGBA')
|
|
|
|
# 리사이즈된 이미지를 리스트에 추가
|
|
icon_images.append(resized_img)
|
|
|
|
# 기존 ico 파일 삭제
|
|
if os.path.exists(original_icon_path):
|
|
os.remove(original_icon_path)
|
|
print(f"기존 아이콘 파일을 삭제했습니다: {original_icon_path}")
|
|
|
|
# 새로운 ico 파일 저장
|
|
icon_images[0].save(
|
|
original_icon_path,
|
|
format='ICO',
|
|
sizes=[(img.width, img.height) for img in icon_images],
|
|
append_images=icon_images[1:]
|
|
)
|
|
|
|
print(f"새로운 아이콘 파일이 성공적으로 생성되었습니다: {original_icon_path}")
|
|
return True
|
|
|
|
except Exception as e:
|
|
print(f"아이콘 변환 중 오류 발생: {e}")
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
create_proper_icon() |