game-1 님의 블로그

게임 프로젝트 리소스 작업 4.19. 본문

카테고리 없음

게임 프로젝트 리소스 작업 4.19.

game-1 2025. 4. 19. 14:48

 

인트로 이미지를 넣어보려는데 파일이 스프라이트로 있으면 좋겠다고 생각해서,

 

파이썬과 지피티의 힘을 이용해서 기존의  png 에셋을 스프라이트시트 이미지로 변경해보려합니다.

 

 

bmp파일로 변경하니 사이즈가 너무 커져서,, 

다시 png파일로 만들어서 적용한 후, ImageRender부분을 수정할 생각입니다.

 

 

각가의 다른 png파일을 spriteSheet로 만드는데 사용한 코드입니다. 필요하신분은 쓰시오, 

from PIL import Image
import os
import glob
import math

input_folder = r"C:\Users\user이런식으로 작성하면됨"
output_file = "intro_animation.png"  # ← PNG로 변경

png_files = sorted(glob.glob(os.path.join(input_folder, "*.png")))
num_frames = len(png_files)

# 첫 이미지 크기
first_image = Image.open(png_files[0])
frame_width, frame_height = first_image.size

# ⚙️ 스프라이트 시트 구조: 40x20 격자 (예시)
cols = 40
rows = math.ceil(num_frames / cols)

sheet_width = cols * frame_width
sheet_height = rows * frame_height

sprite_sheet = Image.new("RGBA", (sheet_width, sheet_height))  # RGBA로 설정

for idx, png_file in enumerate(png_files):
    frame = Image.open(png_file).convert("RGBA")
    x = (idx % cols) * frame_width
    y = (idx // cols) * frame_height
    sprite_sheet.paste(frame, (x, y))

sprite_sheet.save(output_file, format="PNG")
print(f"완료! {output_file} 크기: {sheet_width}x{sheet_height}")

 

결과물

 

 


4.21. 추가) 

189mb짜리는 IMgui 라이브러리써도 불러오기가 안돼서 불러와서 사용못했습니다.

결국 하나씩 불러와서 사용했습니다.