폴더의 모든 이미지를 절반 크기로 만듭니다.
소개
비즈니스에서 BackLog를 사용하고 있으며 위키에 비즈니스 절차를 작성할 수 있습니다.
개인적으로입니다만, 순서서는 실시하는 순서와 1개 앞의 작업을 알고 있는 편이 어쩐지 알기 쉬운 생각이 듭니다.
설명①→설명①의 화상→설명②→설명②의 화상→... 느낌.
↓이 설명문을
↓이러한
그러나 나처럼 설명에 이미지를 많이 사용하는 사람은 하나 하나 이미지를 리사이즈하는 꽤 힘들었기 때문에,
폴더의 모든 이미지를 크기 조정하는 프로그램을 만들었습니다.
전제 조건
파이썬 3.6
pillow
※pillow는 pip install pillow
로 인스톨 할 수 있습니다.
크기 조정 대상 파일
resize.py와 동일한 계층 구조의 파일은 대상이 아닙니다.
다음과 같은 구성의 경우
rezise/
├ フォルダA/
│ └ ファイル1.jpg
│ └ ファイル2.png
│
├ フォルダB/
│ └ ファイル3.jpg
│ └ ファイル4.png
│
├ resize.py←実際に動かすプログラム
└ ファイル5.jpg
폴더 A의 파일과 폴더 B의 파일이 대상입니다.
따라서 크기가 조정되는 파일은
「파일 1.jpg」 「파일 2.png」 「파일 3.jpg」 「파일 4.png」입니다.
같은 계층에 있는 '파일 5.jpg'는 크기가 조정되지 않습니다.
코드
import os
from glob import glob
from PIL import Image
def resize(rename):
for dir_name in all_dir:
#リサイズする拡張子を指定
extensions = ["/*.jpg", "/*.jpeg", "/*.png"]
files = []
#リサイズするデータをリストに入れる
for extension in extensions:
files.extend(glob(path + dir_name + extension))
#resize
for f in files:
img = Image.open(f)
#画像サイズを半分にする
img_resize = img.resize((int(img.width/2), int(img.height/2)))
if rename == "はい":
#ファイル名と拡張子をわける
ftitle, fext = os.path.splitext(f)
img_resize.save(ftitle + '_half' + fext)
else:
img_resize.save(ftitle + fext)
#リサイズするフォルダを指定
path = ("./")
#path直下のフォルダ名、ファイル名を取得
all_file = os.listdir(path)
#ファイル名のみにする
all_dir = [f for f in all_file if os.path.isdir(os.path.join(path, f))]
save_name = input("別名保存にしますか?(はい or いいえ)> ")
if save_name == "はい":
resize(save_name)
input("処理が完了しました。元の名前 + halfという名前で保存されています。Enterを押してください。")
elif save_name == "いいえ":
resize(save_name)
input("処理が完了しました。Enterを押してください。")
else:
input("はい or いいえで入力してください。処理を終了します。Enterを押してください。")
프로그램 설명
원본 이미지 크기의 절반으로 저장됩니다.
"2500px × 1250px"이미지의 경우
「1250px × 625px」가 됩니다.
1/3이면 아래 코드의 '2'를 '3'으로 설정합니다.
#画像サイズを半分にする
img_resize = img.resize((int(img.width/2), int(img.height/2)))
지정 사이즈가 있는 경우, 가로 사이즈는 int(img.width/2)
를 수치(1250 등)에
세로 사이즈는 int(img.height/2)
를 수치 (625 등)로 하면 그 사이즈로 리사이즈됩니다.
사용법
프로그램을 시작하면別名保存にしますか?(はい or いいえ)>
및 콘솔에 표시됩니다.
はい
를 입력하면 원본 이미지와 동일한 폴더에 "원본 이미지 이름 + half +. 확장자"로 저장됩니다.いいえ
를 입력하면 원본 이미지에 덮어쓰기됩니다.
끝에
우선 모든 파일을 절반으로 만드는 프로그램을 만들었지만 너무 작은 파일은 변환할 필요가 없으며 너무 큰 파일은 두 번 변환해야 합니다.
예를 들어 "200px × 200px"절반으로 설정하면 이미지가 너무 작아서보기가 어렵습니다.
반대로 "3000px × 3000px"를 반으로 하여도 "1500px × 1500px"이므로 다시 변환해야합니다.
특정 크기 이상인 경우 1/3로 변환하고, 특정 크기 이하의 경우 변환을 하지 않는 등 하면, 보다 사용하기 쉬워진다고 생각했습니다.
Reference
이 문제에 관하여(폴더의 모든 이미지를 절반 크기로 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/everl/items/20f1f61c99d18c51e15a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
resize.py와 동일한 계층 구조의 파일은 대상이 아닙니다.
다음과 같은 구성의 경우
rezise/
├ フォルダA/
│ └ ファイル1.jpg
│ └ ファイル2.png
│
├ フォルダB/
│ └ ファイル3.jpg
│ └ ファイル4.png
│
├ resize.py←実際に動かすプログラム
└ ファイル5.jpg
폴더 A의 파일과 폴더 B의 파일이 대상입니다.
따라서 크기가 조정되는 파일은
「파일 1.jpg」 「파일 2.png」 「파일 3.jpg」 「파일 4.png」입니다.
같은 계층에 있는 '파일 5.jpg'는 크기가 조정되지 않습니다.
코드
import os
from glob import glob
from PIL import Image
def resize(rename):
for dir_name in all_dir:
#リサイズする拡張子を指定
extensions = ["/*.jpg", "/*.jpeg", "/*.png"]
files = []
#リサイズするデータをリストに入れる
for extension in extensions:
files.extend(glob(path + dir_name + extension))
#resize
for f in files:
img = Image.open(f)
#画像サイズを半分にする
img_resize = img.resize((int(img.width/2), int(img.height/2)))
if rename == "はい":
#ファイル名と拡張子をわける
ftitle, fext = os.path.splitext(f)
img_resize.save(ftitle + '_half' + fext)
else:
img_resize.save(ftitle + fext)
#リサイズするフォルダを指定
path = ("./")
#path直下のフォルダ名、ファイル名を取得
all_file = os.listdir(path)
#ファイル名のみにする
all_dir = [f for f in all_file if os.path.isdir(os.path.join(path, f))]
save_name = input("別名保存にしますか?(はい or いいえ)> ")
if save_name == "はい":
resize(save_name)
input("処理が完了しました。元の名前 + halfという名前で保存されています。Enterを押してください。")
elif save_name == "いいえ":
resize(save_name)
input("処理が完了しました。Enterを押してください。")
else:
input("はい or いいえで入力してください。処理を終了します。Enterを押してください。")
프로그램 설명
원본 이미지 크기의 절반으로 저장됩니다.
"2500px × 1250px"이미지의 경우
「1250px × 625px」가 됩니다.
1/3이면 아래 코드의 '2'를 '3'으로 설정합니다.
#画像サイズを半分にする
img_resize = img.resize((int(img.width/2), int(img.height/2)))
지정 사이즈가 있는 경우, 가로 사이즈는
int(img.width/2)
를 수치(1250 등)에세로 사이즈는
int(img.height/2)
를 수치 (625 등)로 하면 그 사이즈로 리사이즈됩니다.사용법
프로그램을 시작하면
別名保存にしますか?(はい or いいえ)>
및 콘솔에 표시됩니다.はい
를 입력하면 원본 이미지와 동일한 폴더에 "원본 이미지 이름 + half +. 확장자"로 저장됩니다.いいえ
를 입력하면 원본 이미지에 덮어쓰기됩니다.끝에
우선 모든 파일을 절반으로 만드는 프로그램을 만들었지만 너무 작은 파일은 변환할 필요가 없으며 너무 큰 파일은 두 번 변환해야 합니다.
예를 들어 "200px × 200px"절반으로 설정하면 이미지가 너무 작아서보기가 어렵습니다.
반대로 "3000px × 3000px"를 반으로 하여도 "1500px × 1500px"이므로 다시 변환해야합니다.
특정 크기 이상인 경우 1/3로 변환하고, 특정 크기 이하의 경우 변환을 하지 않는 등 하면, 보다 사용하기 쉬워진다고 생각했습니다.
Reference
이 문제에 관하여(폴더의 모든 이미지를 절반 크기로 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/everl/items/20f1f61c99d18c51e15a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)