OCR-PIL.Image与Base64 String的互相转换
1. 基本环境
- py2: python2.7.13
- py3: python3.6.2
- PIL: pip(2/3) install pillow, PIL库已不再维护,而pillow是PIL的一个分支,如今已超越PIL
2. Convert PIL.Image to Base64 String
- py2 :先使用CStringIO.StringIO把图片内容转为二进制流,再进行base64编码
# -*- coding: utf-8 -*-import base64
from cStringIO import StringIO# pip2 install pillow
from PIL import Imagedef image_to_base64(image_path):img = Image.open(image_path)output_buffer = StringIO()img.save(output_buffer, format='JPEG')binary_data = output_buffer.getvalue()base64_data = base64.b64encode(binary_data)return base64_data
- py3:python3中没有cStringIO,对应的是io,但却不能使用io.StringIO来处理图片,它用来处理文本的IO操作,处理图片的应该是io.BytesIO
import base64
from io import BytesIO# pip3 install pillow
from PIL import Image# 若img.save()报错 cannot write mode RGBA as JPEG
# 则img = Image.open(image_path).convert('RGB')
def image_to_base64(image_path):img = Image.open(image_path)output_buffer = BytesIO()img.save(output_buffer, format='JPEG')byte_data = output_buffer.getvalue()base64_str = base64.b64encode(byte_data)return base64_str
3. Convert Base64 String to PIL.Image
- py2:
# -*- coding: utf-8 -*-import re
import base64
from cStringIO import StringIOfrom PIL import Imagedef base64_to_image(base64_str, image_path=None):base64_data = re.sub('^data:image/.+;base64,', '', base64_str)binary_data = base64.b64decode(base64_data)img_data = StringIO(binary_data)img = Image.open(img_data)if image_path:img.save(image_path)return img
- py3:
import re
import base64
from io import BytesIOfrom PIL import Imagedef base64_to_image(base64_str, image_path=None):base64_data = re.sub('^data:image/.+;base64,', '', base64_str)byte_data = base64.b64decode(base64_data)image_data = BytesIO(byte_data)img = Image.open(image_data)if image_path:img.save(image_path)return img
4. 参考网址
[1] https://stackoverflow.com/questions/16065694/is-it-possible-to-create-encodeb64-from-image-object
[2] https://stackoverflow.com/questions/31826335/how-to-convert-pil-image-image-object-to-base64-string
[3] https://stackoverflow.com/questions/26070547/decoding-base64-from-post-to-use-in-pil
OCR-PIL.Image与Base64 String的互相转换相关推荐
- python 图片base64 编解码,转换成Opencv,PIL.Image图片格式
Python PIL.Image和OpenCV图像格式相互转换 二进制打开图片文件,base64编解码转成Opencv格式: # coding: utf-8 import base64 import ...
- android bitmap string,Android Bitmap到Base64字符串(Android Bitmap to Base64 String)
Android Bitmap到Base64字符串(Android Bitmap to Base64 String) 如何将一个大的Bitmap(用手机相机拍摄的照片)转换为Base64 String? ...
- csharp:Convert Image to Base64 String and Base64 String to Image
/// <summary>/// 图像转成二进制数组/// </summary>/// <param name="imageIn"></p ...
- c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式
from: c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式 #include <cstdint> #include <fstream> #i ...
- java base64字符 转图片_JAVA实现图片与base64字符串之间的转换详解
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- Base64处理byte[ ]和base64字符串之间的转换
1.工具类 import org.apache.commons.codec.binary.Base64; public class UtilHelper { //base64字符串转byte[] pu ...
- Java接受前端的base64,转换失败。base64转图片互相转换
spring boot前后端vue,base64转图片互相转换 vue就不展示了,下边只展示Java中互相转换的例子. Java实现图片转化成base64字符串 //图片转化成base64字符串 pu ...
- C#中char[]与string之间的转换
C#中char[]与string之间的转换 原文:C#中char[]与string之间的转换 string 转换成 Char[] string ss = "abcdefg"; ch ...
- 第三次学JAVA再学不好就吃翔(part51)--String类的转换功能
学习笔记,仅供参考 文章目录 String类 String类的转换功能 getBytes方法 toCharArray方法 valueOf方法 toLowerCase方法 toUpperCase方法 c ...
最新文章
- android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- urllib.parse
- Lesson 12.4 逻辑回归建模实验
- Redis提供的持久化机制(RDB和AOF)
- 【Python】绘制哆啦A梦
- c语言打开文件出现分段故障,c fclose() 导致分段故障_segmentation-fault_开发99编程知识库...
- MvcMusicStore学习中常出现的一个BUG
- 纠正存储 dict 的元素前是计算 key 的 hash 值?
- Sprin boot 加载位置顺序
- python中的zip函数详解_python中的 zip函数详解
- 【ArcGIS微课1000例】0027:ArcGIS属性表(dbf)转Excel的4中方法
- 什么是JavaSE,写给第一次接触Java的人
- 中国低线城市洞察综述
- Flowable入门系列文章39 - 网关 01
- 罕见霜降胡杨照片,太美了!
- Latex添加一条水平线
- ios13 微信提示音插件_ios13微信提示音如何进行更改
- 蓝队在攻防比赛中常用的防护手段汇总
- 上海交通大学学生生存手册
- Spring的ioc控制反转