用canvas把图片转为base64代码

最近接到一个需求,其中需要把网络图片的链接转换为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还能做到压缩图片体积、加滤镜、裁决等...

时间: 2024-10-23 19:37:21

用canvas把图片转为base64代码的相关文章

javascript base64-用Js将图片转为base64字符串

问题描述 用Js将图片转为base64字符串 如题,前台使用js将file表单选中的图片转换为base64字符串,请问该怎么做? 这是我在网上找的相关代码,使用firefox调试,每次运行到img.onload就退出去了,进不了function,不知道是哪里有问题,还是压根就写错了.请好心人指点,先谢谢了! 解决方案 bbb是file丢下,没有onload事件,改为onchagne,用HTML5的FileReader对象就可以转为base64了,不需要canvas 而且你bbb已经存在,不需要再

使用JavaScript+canvas实现图片裁剪_jquery

canvas是一个可以让我们使用脚本绘图的标签,它提供了一系列完整的属性和方法.我们可以借此来实现图形绘制,图像处理甚至实现简单的动画和游戏制作. canvas标签只有两个属性:width和height,用来设定画布的宽和高,如果没有通过标签属性或者脚本来设置,默认为300*150; 好了,canvas的介绍就先到这里,下面我们来看看javascript结合canvas实现图片的裁剪代码: 复制代码 代码如下: var selectObj = null; function ImageCrop(c

js image-JS 通过FileSystemObject 读取本地图片,怎么显示在页面上,或者转为Base64

问题描述 JS 通过FileSystemObject 读取本地图片,怎么显示在页面上,或者转为Base64 JS 通过FileSystemObject 读取本地图片,怎么显示在页面上,或者转为Base64 var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFile(filePath); filePath为图片路径(c:/1.jpg) 如何将f文件显示在界面上 或者 转为 Image 或者转

Python获取图片的Base64编码实例代码及把图片转Base64编码

用Python 获取图片的Base64编码,源代码如下:  代码如下 复制代码 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' # base64-pic.py ''' import os, base64 icon = open('ya.png','rb') iconData = icon.read() iconData = base64.b64encode(iconData) LIMIT = 60 liIcon = [] while True:

webpack3实战(5)打包一个多页、jQuery、图片转base64、压缩混淆、异步模块加载的项目

前注: 文档全文请查看 根目录的文档说明. 如果可以,请给本项目加[Star]和[Fork]持续关注. 有疑义请点击这里,发[Issues]. 实战项目示例目录 0.使用说明 安装: npm install 运行(注,这里不像之前用的 test ,而是改用了 build): npm run build 1.需求列表 基本需求: 引入jQuery(或其他类似库,之所以用 jQuery 是每个前端开发者都理应会 jQuery): 使用 less 作为 css 预处理器: 标准模块化开发: 有异步加载

Android把svg图片转为jpg保存到相册图库

我上一篇文章写了<Android加载html中的svg格式图片进行显示〉,有兴趣的同学可以去看看地址:Android加载html中svg格式图片进行显示 但是我们一般在浏览图片时,还会有保存图片到相册或图库的操作,而Android手机自带的相册或图库是不支持查看svg格式的图片的,所以我们需要把svg格式的图片转为jpg或png格式再进行保存,我的例子是保存为jpg格式,png也是一样的,我这里写了个工具类,可以保存jpg,png格式的图片,也可以把svg图片转为jpg进行保存.接下来我贴下我的

JS控制图片翻转示例代码

 本篇文章主要介绍了JS控制图片翻转示例代码(兼容firefox,ie,chrome) 需要的朋友可以过来参考下,希望对大家有所帮助  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.

mfc-opencv将图片转为HSV时总是报错

问题描述 opencv将图片转为HSV时总是报错 if(m_pVideoInfo->m_pCapture){ IplImage* frame*src_image=NULL; frame = cvQueryFrame(m_pVideoInfo->m_pCapture); if(frame) { cvCopy(framem_pVideoInfo->m_pFrameImage); int i bin_w c; if(!m_pVideoInfo->m_pFrameImage) { m_pV

javascript-用js怎样获取图片的base64字符串

问题描述 用js怎样获取图片的base64字符串 现在是不需要选择图片,直接获取图片的base64编码, 在网上找了好多,要么是file选图片的,要么是转文字的,, var filePath = "I://项目资料//南京总医院//WebPages//Emr_bs//main//imgCard//429006199410055414.bmp"; var fso = new ActiveXObject("Scripting.FileSystemObject"); va