图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址。
这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个 http 请求下载而来的。
没错,不管如何,图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,而可以随着 HTML 的下载同时下载到本地那就太好了,而base64正好能解决这个问题。
Base64 虽有优点,但是缺点也很明显,在使用上存在一些明显的缺陷。
是的,使用Base64的好处是能够减少一个图片的 HTTP 请求,然而,与之同时付出的代价则是CSS文件体积的增大。
而CSS文件体积的增大意味着什么呢?意味着 CRP 的阻塞。
CRP(Critical Rendering Path,关键渲染路径):当浏览器从服务器接收到一个HTML页面的请求时,到屏幕上渲染出来要经过很多个步骤。浏览器完成这一系列的运行,或者说渲染出来我们常常称之为“关键渲染路径”。
通俗而言,就是图片不会导致关键渲染路径的阻塞,而转化为 Base64 的图片大大增加了CSS文件的体积,CSS 文件的体积直接影响渲染,导致用户会长时间注视空白屏幕。HTML和CSS会阻塞渲染,而图片不会。

下面通过代码对对图片进行base64编码和解码:

# -!- coding: utf-8 -!-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#作者:cacho_37967865
#博客:https://blog.csdn.net/sinat_37967865
#文件:baseModel.py
#日期:2019-07-02
#备注:图片进行base64编码,解码
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''import base64
import osdef encode_base64(file):with open(file,'rb') as f:img_data = f.read()base64_data = base64.b64encode(img_data)print(type(base64_data))#print(base64_data)# 如果想要在浏览器上访问base64格式图片,需要在前面加上:data:image/jpeg;base64,base64_str = str(base64_data, 'utf-8')  print(base64_str)return base64_datadef decode_base64(base64_data):with open('./images/base64.jpg','wb') as file:img = base64.b64decode(base64_data)file.write(img)if __name__ == '__main__':img_path = './images/background.jpg'base64_data = encode_base64(img_path)decode_base64(base64_data)

# 如果想要在浏览器上访问base64格式图片,需要在前面加上:data:image/jpeg;base64,

备注:base64格式图片常用于尺寸较小、多处使用的、背景类图片。

【Python】base64模块对图片进行base64编码和解码相关推荐

  1. Base64实现图片的编码和解码

    前端开发中,经常会遇到base64编码的问题,以前不是很明白,今天就去研究一下到底什么是base64编码. 什么是base64编码? 还是wiki百科上解释的比较清楚: Base64是一种基于64个可 ...

  2. Base64实现图片的编码和解码 1

    前端开发中,经常会遇到base64编码的问题,以前不是很明白,今天就去研究一下到底什么是base64编码. 什么是base64编码? 还是wiki百科上解释的比较清楚: Base64是一种基于64个可 ...

  3. 【python学习】基础篇-编码与解码 decode()方法 将对象元素打包成元组zip()函数

    i=1 menu=["B超室","化验室"] user="张来,黎明,常冒,赵薇,吉舜锋,辛叶,冲余力,余人明,傅山,岳宁琳,昌紫衫,笆莎莉" ...

  4. python 爬虫之URLlib的编码和解码

    urlencode函数:编码 from urllib import parsedata = {'name':'张三','age':28,'greet':'hello!'}qs = parse.urle ...

  5. android Java BASE64编码和解码一:基础

    今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...

  6. Python url编码和解码

    目录 引题 url编码有什么作用? Python怎么对url进行编码和解码? 导入模块 编码 解码 引题 我们上网的时候经常见到url中会有%25E6,这样有%号的字符,下面是51job的链接: ht ...

  7. python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...

    Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...

  8. 12.Python文件操作与字符编码

    字符编码 字符编码的作用 计算机只认识0和1组成的二进制序列,因此任何文件中的内容(比如"hello neuedu","你好,东东教程"这些字符串)要想被计算机 ...

  9. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

最新文章

  1. 独家 | 手把手教你做数据挖掘 !(附教程数据源)
  2. LiveData使用和生命感知原理
  3. C#使用NPOI导出Excel文件
  4. 在Java 8 Lambda中创建自己的循环结构
  5. 前端笔记-vue cli引入sementic-ui(sementic-ui-vue)
  6. Leetcode -MySQL-178. 分数排名
  7. Pandas 文本数据方法 findall( )
  8. windows下CCS安装教程
  9. Java Web 项目基于IDEA的增量补丁打包插件
  10. GetLastError返回代码含义
  11. 8086/8088寻址方式
  12. 关于windows自带的两种远程访问方式
  13. visio怎么画大括弧
  14. mono for andriod 自动提示输入控件AutoCompleteTextView
  15. 一文搞懂PMP挣值管理那些让你头疼的公式
  16. ffmpeg使用记录--解决了压制的视频在安卓不播放的问题
  17. QQ号转换成16进制登陆
  18. 云南大学计算机科学与技术录取分数线,云南大学2017年录取分数线公布
  19. 库克逼腾讯分成30%遭拒,苹果APP Store或将微信下架!
  20. [雪峰磁针石博客]可爱的python测试开发库

热门文章

  1. java开发原则_java开发中,大家处理异常的原则是什么,是如何处理的?
  2. php打印错误日志到本地,nginx+php怎么打印php的错误日志?
  3. 判断链表是否相交并找出交点
  4. mysql数据库删除列数据_MySQL数据库-数据表、以及列的增删改查
  5. 一篇文章看懂@Scheduled定时器/@Async/CompletableFuture
  6. mysql定义条件和处理_mysql sql存储过程条件定义与处理
  7. git 修改commit_Git从8到13 深入了解Git特性
  8. C语言实现一个随机测试加减乘除,编写程序:C语言实现一个随堂测试,能进行加减乘除运算...
  9. gb2312编码表_汉字编码输入系统模型(一)
  10. 的run代码_小心使用 Task.Run 续篇