posts - 29,comments - 0,views - 6641

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


 

一、定义

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,最终文件大小为667k,type选择image/webp,最终文件大小为381k。选择其他类型的图像格式会使用默认值image/png。

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

 

实验和结论有误

 

posted on   皮五辣子  阅读(2105)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示