首页 > 编程语言 >【javascript】关于 canvas.toDataURL()

【javascript】关于 canvas.toDataURL()

时间:2023-01-12 09:34:43浏览次数:35  
标签:文件大小 canvas image javascript jpeg toDataURL type

在工作中遇到了奇怪的问题,在此记录。


 

一、定义

canvas.toDataURL()方法是返回一个包含图片展示的 数据URL。可以使用 type 参数其类型,默认为 PNG格式,图片的分辨率为96dpi。

二、语法

canvas.toDataURL(type,encoderOptions)

三、参数

1、type:图片格式,默认为 image/png,可以是其他image/jpeg等

2、encoderOptions:0到1之间的取值,主要用来选定图片的质量,默认值是0.92,超出范围也会选择默认值。

四、返回值

返回值是一个数据url,是base64组成的图片的源数据、可以直接赋值给图片的src属性。


需求:有张显示在网页上的图像,需要作为文件参数传给后端

方法:先通过canvas.toDataURL()转为base64,再使用 base64ConvertFile()转成文件

问题:在使用canvas.toDataURL()方法时,选择不同type,最终生成文件大小有很大区别。

实验:原图为大小为411kb的jpeg图像,type选择image/png,最终文件大小为6.3M,type选择image/jpeg,最终文件大小为6.3M,type选择image/jpeg,最终文件大小为667k,type选择image/webp,最终文件大小为381k。选择其他类型的图像格式会使用默认值image/png。

结论:使用png会使最终生成的文件大小扩大十倍,原图为jpeg格式,那么这边最好也使用jpeg格式,使用jpeg图像大小会变大6%左右,webp虽然会使得生成的文件大小缩小,但有兼容性问题。

 

标签:文件大小,canvas,image,javascript,jpeg,toDataURL,type
From: https://www.cnblogs.com/lishuxuan/p/17045515.html

相关文章

  • jQuery与JavaScript与ajax三者的区别与联系(转)
    jQuery与JavaScript与ajax三者的区别与联系作者: (124条消息)xueshuai0922的博客_CSDN博客-Java,Linux,数据库领域博主简单总结:1、JS是一门前端语言。2、Ajax是一门技......
  • 前端使用canvas实现贪吃蛇小游戏
    贪吃蛇是一款益智小游戏,通过点击上下左右四个按键控制蛇头移动。设计思路主要是设计蛇的身体和移动方法。将蛇的身体设置成一个数组,数组里存放蛇身每一节的xy坐标。游......
  • An Introduction to JavaScript
    AnIntroductiontoJavaScriptAnIntroductiontoJavaScriptLet’sseewhat’ssospecialaboutJavaScript,whatwecanachievewithit,andwhatothertechn......
  • 7.JavaScript--正则表达式
    实验原理正则表达式是用于处理字符串的强大工具,其他编程语言中也有正则表达式式的概念,区别只在于不同的编程语言实现支持的语法数量不同。它拥有自己的独特的语法以及一个......
  • JavaScript严格模式(use strict)
    一、什么是严格模式(strictmode)JavaScript严格模式即在严格模式下运行。严格模式下,你将不能使用未声明的变量。注意,严格模式需要浏览器的支持:Internetexplorer10+、Fire......
  • JavaScript超大文件上传
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持......
  • JavaScript – Sort
    前言写程序难免会遇到需要排序的时候.但看是简单的排序,其实暗藏杀机.一不小心就会搞出Bug哦.这篇就简单聊聊JS的排序 ><大过小过排序自然就是先比大小咯.......
  • JavaScript每次刷新照片都不一样
    每次刷新背景图片都不一样    下面是vue的,不过逻辑都一样,只是定义方式不同而已 data是这个//随机数生成randomNumber:'', 这个是在metho......
  • JavaScript 图像压缩
    JavaScript可以使用类似于canvas和webworkers来实现图像压缩。使用canvas,可以将图像绘制到canvas上,然后使用canvas提供的toBlob()或toDataURL()方法将其转......
  • 【javascript】关于charCodeAt()方法
    在做算法题目leetcode2283时,看见某些答案会使用charCodeAt(),因为自己没用过,所以作此纪录描述在JavaScript中,charCodeAt()是一种字符串方法,用于检索字符串中特定位置的......