• 图片转base64编码


    图片处理是前端工作中很重要的一部分,前段时间,我的一个项目中,使用的图标字体在线上不能使用,原来是因为跨域的问题,后台大哥就跟我说,你尝试下把图标字体转换成base64不成了,囧,我到现在还没弄懂怎么把图标字体转换成base64编码,但是,这并不妨碍我研究一下这个'小玩意'.

    其实,图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址.

    我们在网页上所看到的每一张图片都是要消耗一个http请求下载而来(当然,雪碧图就另说了),如果图片的下载不需要想服务器发出请求,就可以下载到本地,那就会减少服务器压力,而base64正好能解决这个问题.

    当然,base64也不是说用在什么地方都好,比如说有些图片本身4KB,但是转换成base64之后超过了5K(即时base64编码能够被gzip压缩,压缩率能达到50%以上),而且一个元素的css样式超过几千个字符,对css整体的可读性会造成十分重大的影响,代码冗余使得base64编码得不偿失.

    如果图片足够小且因为用处的特殊性无法被制作成雪碧图,在整个网站的复用性很高且基本不会被更新,那么此时使用base64编码传输图片就是极好的(最常用的地方就是,一些网站的背景,这些背景是由一些小图通过重复组成的.)

    简单陈述一下base64编码和雪碧图的特点

    雪碧图

    页面具有多种风格,需要换肤功能,可以使用雪碧图

    页面已经趋于完美,不会频繁的改动(如button大小,颜色等)

    使用时无需重复图形内容

    没有base64编码成本,降低图片更新的维护难度

    base64编码

    无额外请求

    对于极小或则极简单图片

    可以被gzip(通过gzip对base64数据的压缩能力通常和图片文件差不多或则更强)

    降低css维护难度

    没有跨域问题,无需考虑缓存,文件头或则cookies问题

    接下来,说一下,将图片转换成base64的方法,其实最简单的就是在chrome下新建一个窗口,然后将要转化的图片直接拖入浏览器中,打开控制台,点source

    如图所示,就是base64的编码

    如图所示,将它如此放置即可。。。

  • 相关阅读:
    MySQL数据库06 /数据库总结
    数据库05 /索引、数据库备份、锁和事务、慢查询优化、索引命中相关
    数据库04 /多表查询、pymysql模块
    数据库03 /库、表、记录的详细操作、单表查询
    struts基于ognl的自动类型转换需要注意的地方
    struts-json-plugin result中配置对象的序列化
    hibernate关联关系笔记
    使用动态代理实现数据库事务(转)
    xml、文件操作功能类
    将CachedRowSet中的数据转储到对象中
  • 原文地址:https://www.cnblogs.com/fbzs/p/6676566.html
Copyright © 2020-2023  润新知