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 相关文章推荐
JQuery 学习笔记 选择器之四
Jul 23 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
JavaScript基于ajax编辑信息用法实例
Jul 15 Javascript
js限制文本框的输入内容代码分享(3类)
Aug 20 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
Apr 14 Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 Javascript
Angular2 (RC4) 路由与导航详解
Sep 21 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
VUE实现一个分页组件的示例
Sep 13 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
May 23 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下连接mssql2005的代码
2011/01/17 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
python 快速排序代码
2009/11/23 Python
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python贪心算法实例小结
2018/04/22 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
几道PHP的面试题
2012/05/19 面试题
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
入党自我鉴定范文
2013/10/04 职场文书
运动会广播稿100字
2014/01/11 职场文书
培训协议书范本
2014/04/22 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
化工见习报告范文
2014/10/31 职场文书
安全保证书
2015/01/16 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
业务内勤岗位职责
2015/04/13 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang