from PIL import Image
# 이미지 열기
image = Image.open("input.jpg")
# 이미지 저장
image.save("output.jpg")from PIL import Image
# 이미지 열기
image = Image.open("input.jpg")
# 이미지 90도 회전
rotated_image = image.rotate(90)
# 회전된 이미지 저장
rotated_image.save("rotated.jpg")from PIL import Image
# 이미지 열기
image = Image.open("input.jpg")
# 이미지를 흑백으로 변환
bw_image = image.convert("L")
# 흑백 이미지 저장
bw_image.save("black_and_white.jpg")from PIL import Image
# 이미지 열기
image = Image.open("input.jpg")
# 이미지 크롭 (left, top, right, bottom)
cropped_image = image.crop((100,100,400,400))
#((x,y,x,y))
#좌측 상단 모서리의 x,y 좌표 / 우측 하단 모서리의 x,y 좌표
#크롭된 이미지 저장
cropped_image.save("cropped.jpg")from PIL import Image, ImageDraw, ImageFont
# 이미지 열기
image = Image.open("input.jpg")
draw = ImageDraw.Draw(image)
# 사용할 폰트 정의
#font = ImageFont.truetype("arial.ttf",size = 45)
# 기본 폰트 사용
font = ImageFont.load_default()
# 이미지에 텍스트 추가 (x,y, message, fill=color, font = font)
draw.text((10,10), "Hello, World!", fill=white, font = font)
# 텍스트가 추가된 이미지 저장
image.save("text_added.jpg")
'''
ImageDraw.Draw 객체를 사용하여 이미지를 수정하면
해당 이미지 객체(image)가 직접적으로 수정되기 때문에
image.save()를 사용하여 이미지를 저장
'''
'''
ImageDraw.Draw()는
PIL의 ImageDraw 모듈 안에 있는 Draw 클래스의 *생성자를 지칭합니다.
이 생성자는 이미지에 그리기 작업을 수행할 수 있는 ImageDraw 객체를 생성합니다.
*생성자 : 생성자는 클래스의 특수한 종류의 메서드
클래스의 인스턴스를 생성할 때 호출되며,
객체를 초기화하고 필요한 속성을 설정합니다.
'''from PIL import Image, ImageFilter
# 이미지 열기
image = Image.open("input.jpg")
# 이미지에 가우시안 블러 필터 적용
blurred_image = image.filter(ImageFilter.GaussianBlur(5))
# 필터가 적용된 이미지 저장
blurred_image.save("blurred.jpg")import os
from PIL import Image
input_folder = 'input_images/'
output_folder = 'output_images/'
# 입력 폴더 내의 모든 이미지 파일에 대해 반복
for filename in os.listdir(input_folder):
if filename.endswith(".jpg"):
img_path = os.path.join(input_folder, filename)
img = Image.open(img_path)
# 이미지 사이즈 조정
resized_img = img.resize((128,128))
# 조정된 이미지 저장
resized_img.save(os.path.join(output_folder, filename))
from PIL import Image
from collections import Counter
# 이미지 열기
image = Image.open("input.jpg")
# 이미지의 모든 픽셀 값 가져오기
pixels = list(image.getdata())
# 가장 흔한 색상 10개 찾기
most_common_colors = Counter(pixels).most_common(10)
print(most_common_colors)from PIL import Image, ImageEnhance
# 이미지 열기
image = Image.open("input.jpg")
# 대비 조정 객체 생성
enhancer = ImageEnhance.Contrast(image)
# 대비를 2로 증가
enhanced_image = enhancer.enhance(2)
# 대비가 증가된 이미지 저장
enhanced_image.save("enhanced_contrast.jpg")from PIL import Image
# 이미지 파일을 열고
image = Image.open("img.jpg")
# 현재 사이즈를 출력
width, height = image.size
print(f"현재 사이즈는 너비{width}, 높이{height} ")
# 사이즈를 반으로 줄인 후 저장
resized_image = image.resize((int(width/2), int(height/2)))
resized_image.save("resized_image.jpg")from PIL import Image, ImageEnhance
img = Image.open("img.jpg")
# 색상을 흑백으로 변환
bw_img = img.convert("L")
bw_img.show()
# 대비를 증가
enhancer = ImageEnhance.Contrast(bw_img) # 인스턴스 생성
enhanced_bw_img = enhancer.enhance(5.0) # 대비를 5 증가시킨다.
enhanced_bw_img.show()
# 저장
enhanced_bw_img.save("enhanced_bw_img.jpg")송용진의 코드
import os
from PIL import Image
output_folder = 'thumbnails/' # 썸네일을 저장할 폴더의 주소
for filename in os.listdir(): # 현재 디렉토리의 모든 파일에 대해서
if filename.endswith(".jpg"): # 파일명이 .jpg로 끝나는 파일에 한해서
img = Image.open(filename)
thumbnail = img.resize((100,100)) # 썸네일의 최대 크기는 100x100 픽셀로 설정
thumbnail.save(output_folder + filename[:-4] + "_thumbnail" + filename[-4:])
# 각 이미지의 이름 옆에 "_thumbnail"을 추가하여 저장