2021. 3. 17. 23:41ㆍ카테고리 없음
패스트캠퍼스 6개월 치 업무를 하루 만에 끝내는 업무자동화 올인원 패키지 Online
학습강의
사진 1천장 사이즈 한번에 변경 1
사진 1천장 사이즈를 한번에 변경 2 - PIL, open, size, resize, save
사진 1천장 사이즈를 한번에 변경 3 - 코드와 알고리즘
한번에 사진들 사이즈 변경하기
목표
이미지 파일 하나씩 불러오기 - 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 를 이용해 정수로 정리해준다.