Files
Casmooc/base64验证码识别.py
2026-07-13 16:59:15 +08:00

29 lines
3.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import base64
from PIL import Image
from io import BytesIO
import ddddocr
# 示例Data URI字符串
data_uri = 'data:image/jpeg;base64,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jjCMUH44UZ966OsfwrpTaJ4W07T3DLLHEDKrMCVdjuYZHGAxIHt61sVotikFFFFMAooooAKKKKACvlnwn4T8R23jLQ55/D+qxQx6hA7yPZyKqKJFJJJHAA719TUUEThzWCiiigsKKKKACiiigAooooA53x3qFpp3gjV2u50hE9rLbxburyOhCqB3JP5AE9Aa8O+E0MsvxH01443dYlmeQqpIRfKZcn0GSB9SPWup1f4Oa5qvie/vvt+nRWl3eyTZ3OzqjOT93aASAemcZ79677wT4C0/wZbSGN/tV/NkS3bJtO3PCqMnaOmeeTyegAxtKUk2jS6SOsooorYzCsrxR/yKWs/9eM//AKLatWorq2hvbSa1uE3wzRtHIuSNykYIyOehoYHnPww0yx1bwPeWuoWsVzC18/yyLnB8tBkHqDgnkciuw0nwhoGh3BuNP02KKY9JGLSMvBHyliSvBOcYz3q3o+h6doFo9rplv5ELyGRl3s2WIAzliT0ArQqYxstRJBRRRVDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/9k='
# 去掉前缀 'data:image/jpeg;base64,'
header, encoded = data_uri.split(',', 1)
# 解码Base64数据
image_data = base64.b64decode(encoded)
# 使用BytesIO将字节数据转换为PIL图像
image = Image.open(BytesIO(image_data))
# 显示图像
#image.show()
# 如果需要保存图像可以使用image.save方法
image.save('output.jpg')
ocr = ddddocr.DdddOcr()
with open('output.jpg', 'rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)