当前位置:网站首页>img转base64
img转base64
2022-08-10 17:39:00 【凡小多】
img转base64
一个简单的img地址转base64格式,并可以设置压缩比例以及图片格式
// 参数说明:图片地址(本地或者线上url)、处理后返回的base64内容、指定图片类型
function imgToBase64(url, outputFormat) {
return new Promise((resolve, reject) => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const img = new Image;
img.crossOrigin = 'Anonymous'; //解决Canvas.toDataURL 图片跨域问题
img.onload = () => {
let width = img.width;
let height = img.height;
// 压缩比例 -- 可以自己修改参数。500px宽度以下原尺寸,大于500px比例处理
let bili = Math.round(width / 500) || 1;
let rate = 1 / bili;
canvas.width = width * rate;
canvas.height = height * rate;
ctx.drawImage(img, 0, 0, width, height, 0, 0, width * rate, height * rate);
let dataURL = canvas.toDataURL(outputFormat || 'image/jpeg');
// 去除标头 -- 传递给后台时一般去除头部
// let reg = new RegExp('^data:image/[^;]+;base64,');
// dataURL = dataURL.replace(reg, '');
canvas = null;
resolve(dataURL);
}
img.src = url;
})
};
// 调用:
imgToBase64("https://img0.bdstatic.com/static/searchdetail/img/logo-2X_2dd9a28.png").then(res => console.log(res))
边栏推荐
- R语言使用ggpubr包的ggbarplot函数可视化柱状图、设置add参数为mean_se和jitter可视化不同水平均值的柱状图并为柱状图添加误差线(se标准误差)和抖动数据点分布
- 「企业架构」企业架构师,解决方案架构师和软件架构师有何不同
- Go 语言快速入门指南:第四篇 与数据为舞之数组
- MongoDB教程
- JWT 实现登录认证 + Token 自动续期方案
- 多线程与高并发(11)——经典面试题之实现一个容器,提供两个方法,add,size。
- Moonbeam于Moonbase Alpha构建新式XCM对EVM跨链功能
- redis分布式锁
- 欧洲核子研究中心首次在量子机器学习研究中取得实效
- R语言使用oneway.test函数执行单因素方差分析(One-Way ANOVA)、使用数据集的子集数据进行单因素方差分析(subset函数筛选数据子集)
猜你喜欢
leet面试150
Toronto Research Chemicals萜烯分析丨反式植物醇
机器人控制器编程实践指导书旧版-实践五 数字舵机(执行器)
WebRTC source code analysis nack detailed explanation
Making Pre-trained Language Models Better Few-Shot Learners
zabbix配置触发器
初始网络原理
Return the next higher prime number
【2015】【论文笔记】等离子光混合器THz辐射的光谱——
Toronto Research Chemicals霉菌毒素分析丨T2 四醇
随机推荐
redis分布式锁
Mysql索引、事务与存储引擎
leet面试150
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(上)
迪文发布新款2K高清DGUS智能屏
机器人控制器编程实践指导书旧版-实践六 LCD液晶显示(点阵)
本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统
成为一个优秀的测试工程师需要具备哪些知识和经验?
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
未来5年的9大技术趋势
FFmpeg 从mp4上提取H264的nalu
文件包含漏洞复习总结
自动化测试 RobotFramework安装以及使用教程
Product Description丨MobPush fast integration method on Android side
vvic API 接入说明
Moonbeam于Moonbase Alpha构建新式XCM对EVM跨链功能
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
FlexSim仿真软件入门笔记:基本操作、快捷键
Flexsim 发生器设置label和颜色
强网杯2021final