[英]How to properly encode and decode base64 image to get exact same image with python?
手術期間我遺漏了一些東西,因為圖像不一樣(盡管在視覺上看不到差異)。
MWE:
import base64
from io import BytesIO
from PIL import Image
image = Image.open('image.jpg')
buffered = BytesIO()
image.save(buffered, format="JPEG")
image_content = base64.urlsafe_b64encode(buffered.getvalue())
image_decoded = Image.open(BytesIO(base64.urlsafe_b64decode(image_content.decode())))
print(image == image_decoded)
# return False
print(np.array(image).sum() == np.array(image_decoded).sum())
# return False
我終於通過@Idlehands評論將其整理出來。 Image.open(...)
已更改二進制內容。
一個可行的解決方案:
import base64
from PIL import Image
with open('image_name.jpg', 'rb') as image_file:
image_byte = image_file.read()
image_base64 = base64.urlsafe_b64encode(image_byte)
with open('test.jpg', 'wb') as image_file:
image_file.write(base64.urlsafe_b64decode(image_base64))
image = Image.open('image_name.jpg')
image_decoded = Image.open('test.jpg')
image == image_decoded
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.