파이썬, 이미지 파일과 base64 문자열 변환 예제

 

글. 수알치 오상문

 

[예제 코드] img2base64.py

# 이미지를 base64 문자열로 저장하고
# base64 문자열을 이미지로 저장하는 예제이다.

import base64
from PIL import Image
from io import BytesIO
import matplotlib.pyplot as plt

# kitten.jpg 이미지 파일을 읽어서 base64 문자열로 변환 저장하기
with open('./kitten.jpg', 'rb') as img:
  base64_str = base64.b64encode(img.read())

print(base64_str)

#img = Image.open(BytesIO(base64.b64decode(base64_str)))
#plt.imshow(img)

# 이미지를 저장한 base64 문자열을 다른 이미지로 파일(kitten2.jpg)로 저장하기
image_data = base64.b64decode(base64_str)

with open('./kitten2.jpg', 'wb') as img:
  img.write(image_data)

 

[이미지]

 

[실행 결과] print 출력문 

b'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'

 

반응형

+ Recent posts