用canvas把图片转为base64代码

简介: 最近接到一个需求,其中需要把网络图片的链接转换为base64的地址。 其中,用canvas可以很方便的实现这个要求。 ``` js let basePath //图片base64地址 let $img = new Image() $img.onload = () => { let canvas = document.createElement('canvas') ca

最近接到一个需求,其中需要把网络图片的链接转换为base64的地址。
其中,用canvas可以很方便的实现这个要求。

let basePath //图片base64地址
let $img = new Image()
$img.onload = () => {
    let canvas = document.createElement('canvas')
    canvas.width = $img.width
    canvas.height = $img.height
    let ctx = canvas.getContext("2d")
    ctx.drawImage($img, 0, 0)
    
    basePath = canvas.toDataURL()
}
$img.setAttribute('crossOrigin', 'anonymous')
$img.src = _icon

需要注意的两点:
1、canvas需要设置宽高,不然会浏览器会自动设置画布大小,和图片大小不一致
2、如果图片跨域,需要设置$img.setAttribute('crossOrigin', 'anonymous'),前提是服务器支持跨域获取图片

这是canvas中的一个小功能,canvas还能做到压缩图片体积、加滤镜、裁决等...

目录
相关文章
|
SQL 缓存 监控
drds性能监控与调优
drds性能监控与调优
488 2
|
关系型数据库 MySQL DataX
C++常见gcc编译链接错误解决方法
除非明确说明,本文内容仅针对x86/x86_64的Linux开发环境,有朋友说baidu不到,开个贴记录一下(加粗字体是关键词):用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例:-Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest("-Wl"表示是传递给链接器ld的参数,而不是编译器gcc/g++的参数。
2867 0
|
测试技术 Linux 网络安全
【Docker项目实战】使用Docker部署astro个人仪表板
【4月更文挑战第9天】使用Docker部署astro个人仪表板
511 1
|
缓存 IDE 安全
基准测试神器JMH —— 详解36个官方例子
基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。而JMH是一个用来构建,运行,分析Java或其他运行在JVM之上的语言的 纳秒/微秒/毫秒/宏观 级别基准测试的工具。
2470 1
基准测试神器JMH —— 详解36个官方例子
|
存储 NoSQL Redis
docker搭建Redis Cluster集群环境
docker搭建Redis Cluster集群环境
437 1
|
前端开发
前端:下载文件(多种方法)
前端:下载文件(多种方法)
1387 0
|
机器学习/深度学习 算法 机器人
机器人控制中常见的算法总结
机器人控制中常见的算法总结
907 0
|
存储 安全 Java
提升编程效率的利器: 解析Google Guava库之集合篇Table二维映射(四)
提升编程效率的利器: 解析Google Guava库之集合篇Table二维映射(四)
|
前端开发 JavaScript 小程序
前端图片转base64 方法
前端图片转base64 方法
703 0
|
JSON Prometheus Cloud Native
Grafana 系列文章(六):Grafana Explore 中的日志
Grafana 系列文章(六):Grafana Explore 中的日志