javascript从image转换为base64位编码的String


Posted in Javascript onJuly 29, 2014

最近需要把app的微信分享方法开放给webview,涉及到分享的图片,如果通过传送图片连接,那将要在后台再取一次图片文件,会影响速度,我选择webview把image以base64位编码的方式传给本地应用。 下面是实现的参考代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<title>Image to Base64 - jsFiddle demo by handtrix</title> 

<script type='text/javascript' src='//code.jquery.com/jquery-2.0.2.js'></script> 

<link rel="stylesheet" type="text/css" href="/css/result-light.css" rel="external nofollow" > 

<style type='text/css'> 
@import url('//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css'); 

body{ 
padding: 20px; 
} 
</style> 

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
/** 
* convertImgToBase64 
* @param {String} url 
* @param {Function} callback 
* @param {String} [outputFormat='image/png'] 
* @author HaNdTriX 
* @example 
convertImgToBase64('http://goo.gl/AOxHAL', function(base64Img){ 
console.log('IMAGE:',base64Img); 
}) 
*/ 
function convertImgToBase64(url, callback, outputFormat){ 
var canvas = document.createElement('CANVAS'); 
var ctx = canvas.getContext('2d'); 
var img = new Image; 
img.crossOrigin = 'Anonymous'; 
img.onload = function(){ 
canvas.height = img.height; 
canvas.width = img.width; 
ctx.drawImage(img,0,0); 
var dataURL = canvas.toDataURL(outputFormat || 'image/png'); 
callback.call(this, dataURL); 
// Clean up 
canvas = null; 
}; 
img.src = url; 
} 

$('#img2b64').submit(function(event){ 
var imageUrl = $(this).find('input[name=url]').val(); 
console.log('imageUrl', imageUrl); 
convertImgToBase64(imageUrl, function(base64Img){ 
$('.output') 
.find('textarea') 
.val(base64Img) 
.end() 
.find('a') 
.attr('href', base64Img) 
.text(base64Img) 
.end() 
.find('img') 
.attr('src', base64Img); 
}); 

event.preventDefault(); 
}); 

});//]]> 

</script> 
</head> 
<body> 
<h2>Input</h2> 
<form class="input-group" id="img2b64"> 
<input 
type="url" 
name="url" 
class="form-control" 
placeholder="Insert an IMAGE-URL" 
value="http://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png" 
required> 
<span class="input-group-btn"> 
<input 
type="submit" 
class="btn btn-default"> 
</span> 
</form> 
<hr> 
<h2>Output</h2> 
<div class="output"> 
<textarea class="form-control"></textarea><br> 
<a></a><br><br> 
<img><br> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
小型js框架veryide.librar源代码
Mar 05 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
Sep 06 Javascript
基于jQuery实现自动轮播旋转木马特效
Nov 02 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
小程序点击图片实现自动播放视频
May 29 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
Nov 12 Javascript
javascript自定义函数参数传递为字符串格式
Jul 29 #Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 #Javascript
js键盘事件的keyCode
Jul 29 #Javascript
js识别不同浏览器基于userAgent做判断
Jul 29 #Javascript
让浏览器DOM元素最后加载的js方法
Jul 29 #Javascript
js实现遮罩层划出效果是生成div而不是显示
Jul 29 #Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 #Javascript
You might like
php 验证码实例代码
2010/06/01 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
关于crontab的使用详解
2013/06/24 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python中pygame安装方法图文详解
2015/11/11 Python
详解python 注释、变量、类型
2018/08/10 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
通信工程专业女生个人求职信
2013/09/21 职场文书
护理专业自荐信
2013/12/03 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
读书活动总结范文
2014/04/26 职场文书
法人委托书范本格式
2014/09/15 职场文书
单位工作证明格式模板
2014/10/04 职场文书
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript