[패스트캠퍼스 수강후기] 업무자동화강의 100% 환급 챌린지 10회차 미션

2021. 3. 17. 23:41카테고리 없음

패스트캠퍼스 6개월 치 업무를 하루 만에 끝내는 업무자동화 올인원 패키지 Online

 

학습강의

 

사진 1천장 사이즈 한번에 변경 1
사진 1천장 사이즈를 한번에 변경 2 - PIL, open, size, resize, save
사진 1천장 사이즈를 한번에 변경 3 - 코드와 알고리즘

 

bit.ly/3pIrVoN

 

6개월 치 업무를 하루 만에 끝내는 업무자동화 | 패스트캠퍼스

대한민국 직장인, 개인 사업자 여러분! 오늘도 귀찮은 반복 업무에 스트레스 받으셨나요? 6개월 치 업무를 하루 만에 끝낸 '카이스트 공익'이 여러분의 칼퇴를 도와 드립니다! 여러 정부기관과

www.fastcampus.co.kr

 

한번에 사진들 사이즈 변경하기

 

목표

 

이미지 파일 하나씩 불러오기 - PIL 이미지 불러오기
원본 이미지 크기 알아내기 - PIL 크기 알아내기
이미지 크기 변경 - PIL 크기 변경

 

 

In [2]: from PIL import Image

 

필 모듈 불러오기

 

In [4]: a = Image.open("a.png")

 

이미지를 불러올때는 open("파일이름")

 

 

In [5]: a.size
Out[5]: (85, 104)

 

사이즈 확인하기

 

In [6]: x, y = a.size

In [7]: x
Out[7]: 85

In [8]: y

 

언패킹을 통해 각각 넣어준다

 

In [9]: a
Out[9]: <PIL.PngImagePlugin.PngImageFile image mode=RGB size=85x104 at 0x120CB78
2160>

 

In [10]: a.resize((200, 300))
Out[10]: <PIL.Image.Image image mode=RGB size=200x300 at 0x120CB9D5310>

 

In [11]: a.size
Out[11]: (85, 104)

 

a파일에 사이즈는 변하지 않기에 다른 이름에 변수에 저장해 줘야 변경이된다.

 

 

In [14]: b = a.resize((200, 300))

In [15]: b.size
Out[15]: (200, 300)

 

b라는 변수에 a 리사이즈 값을 저장한다.

 

 

In [16]: b.save("b.png")

 

b.png라는 이름으로 저장한다.

 

 

코드

 

directory = sys.argv[1]

 

알그브이 폴더명을 불러온다

 

percent = float(sys.argv[2])/100

 

알그브이 변경하고자하는 숫자를 입력된다

 

 

퍼문을 돌릴때

for filename in input_files:

exp = filename.strip().split('.')[-1]
if exp not in "JPG jpg JPEG jpeg PNG png BMP bmp":
    continue

스트랩으로 공백을 날리고 스플릿을 사용해 . (확장자) 기준으로 나눈다 다른 점이 있을 수 있으니 [-1]을 사용해 맨 마지막 기준으로 데이터를 분리해주고 JPG jpg JPEG jpeg PNG png BMP bmp 해당 확장자일때 돌리고 아닐때는 예외처리한다.

 

 

Xdim, Ydim = image.size

 Xdim *= percent
    Ydim *= percent

언패킹으로 사이즈를 알아내고 Xdim 곱하기 퍼센트 변수을 곱하여 사이즈를 저장한다.

 

image = image.resize((int(Xdim), int(Ydim)))

 

수소점 아래 숫자가 나올수 있어 int 를 이용해 정수로 정리해준다.