在工作中遇到了奇怪的问题,在此记录。
一、定义
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虽然会使得生成的文件大小缩小,但有兼容性问题。
实验和结论有误
分类:
前端 / javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人