php array_clunm,Python 玩转图像格式转换操作

最近在做图片相关的工作,面对各种格式的图片转换,在OpenCV跟Pillow之间来回切换。觉得有必要把这些东西记录下来,以备不时之需。

首先介绍一下图片的常见三种存储格式。

1、图片的存储格式

不同的场景,经常会使用不同存储格式的图片。

在给人们展示时,一般是采用文件的方式进行存储,常见的有jpg,png,jpeg等等文件格式,便于人们区分理解。

在计算机网络中传输时,一般是采用字节流的方式进行存储,常见的有base64编码的图片字节流,便于计算机网络传输。

在计算机对图片进行处理时,一般是采用矩阵的方式进行存储,通常是3维矩阵(channels, height, weight), 矩阵上的每个元素表示图片在该位置的像素值,介于[0,255]

本文的重点是讲解如何通过python实现以上三种图片格式的转换。

2、OpenCV & Pillow

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库,由Intel发起参与的一个开源项目。支持python, C, C++等多种编程语言。

Pillow是Python 图像处理库。详细介绍参见

3、 图片格式转换

3.1 文件——base64

本小节介绍分别使用opencv和pillow实现文件格式跟base64字节流的转换。

3.1.1 文件转base64

先读入图片,然后使用base64进行编码,代码如下

# file to base64

def file2base64(image_path):

f = open(image_path, 'rb')

base64_encode = base64.b64encode(f.read()).decode('utf-8')

return base64_encode

输入图片如下图所示:

ff65c7202987039b03620e3270449f90.png

输出base64编码内容为:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值