이 예제에서는 미션으로 png, jpg 같은 이미지 확장자 파일을 gif 파일로 움직이는 이미지로 바꾸는 프로그램을 만들려고 한다.
미션은 정적인 이미지를 → 애니메시연 이미지 변환 패키지를 만들 예정이다.
그러나 나는 우선은 가볍게 읽어보기로 했다.
왜냐하면 나는 작업한 걸 올리는게 중요하기 때문이다.
import glob
from PIL import Image
# 이미지, 결과 생성 경로
path_in = './images/*.png'
path_out = './project/image_out/result.gif'
# 첫 번째 이미지 & 모든 이미지 리스트 팩킹
# img, *images = [Image.open(f) for f in sorted(glob.glob(path_in))]
# 리사이즈(필요한 경우)
img, *images = [Image.open(f).resize((320,240), Image.ANTIALIAS) for f in sorted(glob.glob(path_in))]
# 이미지 저장
img.save(
fp=path_out,
format='GIF',
append_images=images,
save_all=True,
duration=500,
loop=1,
)
처음 초안 ..
import glob
from PIL import Image
class GifConverter:
def __init__(self, path_in=None, path_out=None, resize=(320, 240)):
"""
path_in : 원본 여러 이미지 경로 ex. images/*.png
path_out : 결과 이미지 경로 ex. output/filename.gif
resize : 출력 이미지 사이즈((320, 240))
"""
self.path_in = path_in or './*.png'
self.path_out = path_out or './output.gif'
self.resize = resize
def convert_gif(self):
"""
gif로 변환을 해준다.
:return: git image file
"""
print(self.path_in, self.path_out, self.resize)
img, *images = [Image.open(f).resize(self.resize, Image.ANTIALIAS) for f in sorted(glob.glob(self.path_in))]
try:
img.save(
fp=self.path_out,
format='GIF',
append_images=images,
save_all=True,
duration=500,
loop=0
)
except IOError:
print('Cannot convert!', img)
if __name__ == '__main__':
# 클래스
c = GifConverter('./project/images/*.png', '.project/image_out/result.gif')
c.convert_gif()
이것을 이것을 사용하는 방법을 사용하고
setup.py에 대해서 알 필요가 있다. 이게 필요하다.
이거에 대해서 자세히 나오는 방법은 다음과 같다.