为了降低资源服务器的消耗、有些时候需要前端压缩图片,转码等一些处理。

一、Base64的优点和缺点

图片转换成base64格式的优缺点

1. 优点

(1)base64格式的图片是文本格式,占用内存小,转换后的大小比例大概为1/3,降低了资源服务器的消耗;

(2)网页中使用base64格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问次数。

(3)base64编码的字符串,更适合不同平台、不同语言的传输;

(4)算法是编码, 不是压缩, 编码后只会增加字节数,但是算法简单, 几乎不会影响效率,算法可逆, 解码很方便, 不用于私密信息通信;

(5)解码方便, 但毕竟编码了, 肉眼还是不能直接看出原始内容;

2. 缺点

(1)base64格式的文本内容较多,存储在数据库中增大了数据库服务器的压力;

(2)网页加载图片虽然不用访问服务器了,但因为base64格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。

(3)base64无法缓存,要缓存只能缓存包含base64的文件,比如js或者css,这比直接缓存图片要差很多,而且一般HTML改动比较频繁,所以等同于得不到缓存效益。

// 获取图片转base64getBase64(file) {return new Promise(function(resolve, reject) {const reader = new FileReader()let imgResult = ''reader.readAsDataURL(file)reader.onload = function() {imgResult = reader.result}reader.onerror = function(error) {reject(error)}reader.onloadend = function() {resolve(imgResult)}})}

二、压缩图片的大小——image-conversion

image-conversion除了压缩图片体积,还可以压缩图片宽高比例等,具体参数使用可自行百度

1.安装模块

npm i image-conversion --save

2.引入imageConversion的compressAccurately ,进行压缩

// 引入image-conversion
import { compressAccurately } from 'image-conversion'

3.调用compressAccurately

// 压缩到100KB,这里的100就是要压缩的大小,可自定义
compressAccurately(file, 100).then(res => {var mfile = res// console.log('压缩好的文件',mfile)// console.log('压缩上传的图片大小',mfile.size)      //Blob转成Filelet files1 = new window.File([mfile],  //[文件]file.name, { type: file.type })
})

4、其中压缩好的文件默认是Blob类型

//利用File Api将blob转成File对象
let files = new window.File([this.blob], file.name, {type: file.type})

elementUI压缩图片和将图片转成base64格式相关推荐

  1. nodejs读取图片并将二进制数据转换成base64格式

    首先,使用nodejs进行数据读取,需要用到nodejs的fs模块进行数据读取: fs.readFile('你的资源路径','binary',function(err,data){if(err){co ...

  2. [待解决]自定义头像时使用vue-cropper进行图片裁剪,得到的是base64格式的图片,如何对接file类型的api接口

    [待解决]自定义头像时使用vue-cropper进行图片裁剪,得到的是base64格式的图片,如何对接file类型的api接口 百度很多都没用,有想法欢迎指点.

  3. php+打开图片二进制文件,php图片文件、二进制流、base64格式相互转化

    1,php 图片文件.二进制流.base64格式相互转化$image = 'E:/www/logo.png';  //图片文件地址 $type = getimagesize($image)['mime ...

  4. 将链接转成base64格式生成二维码和把页面生成图片

    将链接转成base64格式 function getUrlBase64 (url, etx, callback) {var canvas = document.createElement('canva ...

  5. PHP将图片验证码转换成base64格式

    框架 TP5.0 对应的图形验证码包 composer require topthink/think-captcha v1.0.8 按照官方的描述其实是直接响应图片的可以查看entry方法: retu ...

  6. js将图片或者文件转成base64格式的两种方法

    场景一,项目assets资源里面的图片本地图片,重点如下 需要了解 canvas的基本操作,canvas.toDataURL 方法 HTMLCanvasElement.toDataURL() 方法返回 ...

  7. html虚拟打印转为pdf,Doro PDF Writer 虚拟打印机 – 可将任何格式图片/文档/文件转换成 PDF格式...

    在办公领域经常要用到 PDF 格式文档,因此常常有图片.表格.Word 等各种不同格式的文档转换成 PDF 格式的需求.虽然网上有很多在线转换网站或 PDF 转换软件,不过今天推荐的是通用性更强的软件 ...

  8. 用python读取pg数据库中的blob类型图片数据,转换存成jpg格式存到本地文件夹

    先啰嗦一下,热热身 在工作中,我们常见到数据库中的数据类型主要为char,varchar,text等,但是有时我们也会用blob格式来存储语音文件或者图像文件,在网上找了很多,都没找到合适的办法,只好 ...

  9. 如何把带图片html转为doc,教您一招:如何将图片里面的文字转成word格式并能编辑...

    在工作.学习中往往会用相机拍摄一些图片或者用扫描仪扫描一些文字图片,或者对好文章进行截图,因为这些文字图片是不可以编辑的,一个个字符敲起来又及其费事,那么怎么办? 当然有办法,虽然网络上传授说:下载某 ...

最新文章

  1. Megengine量化
  2. ICRA 2022 | 基于多模态变分自编码器的任意时刻三维物体重建
  3. 文件哈希审计工具md5deep/hashdeep
  4. 通过DNS通道传输的交互式PowerShell脚本
  5. jupyter代码字体大小_Jupyter notebook设置背景主题,字体大小及自动补全代码的操作...
  6. 寄售业务的SAP标准流程
  7. m5310模组数据上传至onenet_硬核干货!基于M5310-A的NB-IoT水表通信模块软件业务逻辑分享...
  8. 别看360完成私有化 仍有三因素阻碍中概股回归
  9. 函数的凹凸性证明_理解图灵机和递归函数的等价性证明
  10. xcode 常用快捷键
  11. html 折叠焦点图切换,jQuery层叠式图片切换焦点图插件
  12. opencv手册_OpenCV之单目测距实现
  13. python游戏编程入门下载-Python游戏编程入门 中文pdf扫描版|网盘下载内附地址提取码|...
  14. Sprint3(12.18)总结
  15. Vue 中的计算属性,方法,监听器
  16. 实战Java商品库存管理系统
  17. 定时器中Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
  18. 【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】
  19. 数据结构(四)—— 图(1):什么是图
  20. java多表头导出excel表格_【每日一点】1. Java如何实现导出Excel单表头或多表头

热门文章

  1. display:inline的用法
  2. Hive 大数据表性能调优
  3. 人工智能 深度学习(Deep learning)开源框架
  4. Node.js Web开发框架
  5. 经典曲线特征提取方法总结1
  6. python微信开发入门_python tornado微信开发入门代码
  7. Python玩转简书钻,简述钻是否对文章权重有影响?结果确实有!
  8. 软件测试入门到飞升上仙之web 端测试
  9. 使用notepad++作为keil的外部编辑器
  10. css中如何设置字体