方法1:直接返回图片编码

  • 参数url:图片的路径 ;
  • 参数imgType:图片类型默认image/png;
  • 方法返回值:图片base64编码
function getBase64ImageUrl(url, imgType) {if(!imgType){imgType="image/png";}var img=new Image(); img.src= url;img.crossOrigin="anonymous";var xhr = new XMLHttpRequest();//通过下面两次同步请求获取同一个图片,如果请求成功来猜测上面的图片已经异步加载完成for(var i=0;i<2;i++){xhr.open('GET', url, false);xhr.send(null);}var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");  ctx.drawImage(img, 0, 0);var dataURL = canvas.toDataURL(imgType);return dataURL;
}

方法2:回调方法获取

  • 参数url:图片的路径 ;
  • 参数callBack:回调函数;回调函数的参数只有一个为:图片base64编码;
  • 参数imgType:图片类型默认image/png;
  • 方法返回值:无返回值;
function getBase64ImageUrl(url, callBack, imgType) {if(!imgType){imgType="image/png";}var img=new Image(); img.src= url;img.crossOrigin="anonymous";img.onload=function(){var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");  ctx.drawImage(img, 0, 0);var dataURL = canvas.toDataURL(imgType);callBack(dataURL);}
}

方法3:回调方法获取

  • 参数url:图片的路径 ;
  • 参数callBack:回调函数;回调函数的参数只有一个为:图片base64编码;
  • 参数imgType:图片类型默认image/png;
  • 方法返回值:无返回值;
function getBase64ImageUrl(url,callBack,imgType){if(!imgType){imgType="image/png";}var xhr = new XMLHttpRequest();xhr.responseType="arraybuffer";xhr.open('GET', url, true);xhr.onload=function(){var result=xhr.response;var file = new File([result], "foo."+imgType.match(/\/([A-Za-z]+)/)[1], {type: imgType,});var reader = new FileReader();reader.onload = function(evt) {callBack(evt.target.result);};reader.readAsDataURL(file)}xhr.send(null);
}

注意:以上两种方法获取的图片base64编码并不是纯净的,实际上是"data:image/png;base64,"+图片base64编码;其中image/png;也可能是其他图片类型,如有需要请自行截掉前面部分"data:image/png;base64,";

个人建议使用方法2和方法3获取;

js通过图片url获取图片base64编码相关推荐

  1. 根据图片URL获取图片的尺寸【Swift语言实现】

    import UIKit extension UIImage { /// 获取网络图片尺寸 /// /// - Parameter url: 网络图片链接 /// - Returns: 图片尺寸siz ...

  2. Swift - 根据图片URL获取图片的大小

    该方法在swift3以后会报大量的错,博主会在近期针对swift3.0进行更正 在swift3.0中,可以下载下来后再用,方法有多种,殊途同归,都是要先下载的,这里提供两种: 方法1:var urlS ...

  3. php 验证网络图片尺寸,通过url获取图片尺寸的几种方法:JS和php

    首先是js的方法,通过new一个Image对象,设置src属性,并监听complete和onload事件,图片加载完成后输出图片的宽度和高度 function checkPicurl(url){ va ...

  4. iOS根据图片url获取尺寸

    可以在UIImage的分类中加入下面的代码,并且引入系统的ImageIO.framework /**根据图片的url获取尺寸@param URL url@return CGSize*/ + (CGSi ...

  5. [js] 写一个方法获取图片的方向

    [js] 写一个方法获取图片的方向 <!DOCTYPE html> <html> <head><meta charset="utf-8"& ...

  6. python将图片转换成二进制文本_python将图片文件转换成base64编码的方法

    本文实例讲述了python将图片文件转换成base64编码的方法.分享给大家供大家参考.具体实现方法如下: import base64f=open(r'c:\jb51.gif','rb') #二进制方 ...

  7. Python 图片数据MYSQL存取(BASE64编码解码)

    Python 图片数据MYSQL存取(BASE64编码解码) 1.相关python代码 #-*- coding:utf-8 -*-import pymysql import sys import ba ...

  8. python下载图片并保存_Python从URL获取图片、读取图片格式并保存到本地

    前言 从网络上下载图片的时候,我们不一定能从URL中获取图片格式. 所以,从图片本身获取图片格式,是比较通用而且方便的方法了. 但是,PIL一般都是从文件读取图片数据,那么如何从requests.co ...

  9. Android通过网络URL获取图片并显示

    1.布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:to ...

  10. java url安全的base64编码_URL安全的Base64编码

    Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可 ...

最新文章

  1. js中String的常用扩展
  2. python各种模块的使用
  3. SqlServer2005/2008下sysproperties无效的解决办法
  4. Qt状态机框架介绍(一)
  5. 使用 RUP 管理小型项目和团队
  6. 14行代码满分:1037 在霍格沃茨找零钱 (20分)
  7. 论文浅尝 | Doc2EDAG:一种针对中文金融事件抽取的端到端文档级框架
  8. Python语言学习笔记
  9. 将iOS默认上下文坐标系改变为Quartz通常坐标系
  10. 在python中使用什么工具管理模块_怎么使用Python pip(管理模块工具)
  11. VS2008jQuery智能提示
  12. CentOS 7 安装无线驱动
  13. Python函数之进阶
  14. python编辑svg文件_如何修改pygal生成的svg文件背景色
  15. [项目管理]浅谈软件项目WBS任务分解
  16. 教育行业剧变:校讯通将死 家校沟通永生
  17. 如何选择关键词以及关键词分析优化
  18. 云服务器上行带宽/下行带宽/出网带宽/入网带宽详解(一看就懂)
  19. Windows7系统提示当前页面的脚本发生错误怎么办
  20. 算法与数据结构学习资源大搜罗——良心推荐

热门文章

  1. uygurqa输入法android,uygurqa输入法app
  2. 上古卷轴5json文件修改_捏脸工具-RaceMenu
  3. (Windows) CodeBlocks 下载
  4. Java数组排序:Java sort()方法
  5. Win10下安装GrADS
  6. 计算机制图师岗位技能要求,机械制图员
  7. RSS阅读器Reeder简单使用攻略
  8. PHPwamp开发环境搭建详解
  9. 国内PC版64位谷歌浏览器离线下载安装地址
  10. asc怎么用 linux zip_asc文件扩展名,asc文件怎么打开?