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 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
js特殊字符过滤的示例代码
Mar 05 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
详解如何在react中搭建d3力导向图
Jan 12 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
在js代码拼接dom对象到页面上的模板总结
Oct 21 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
Oct 22 Javascript
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 Javascript
js判断密码强度的方法
Mar 18 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 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中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
PHP 面向对象详解
2012/09/13 PHP
php 如何获取数组第一个值
2013/08/06 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
dataframe设置两个条件取值的实例
2018/04/12 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python实现五子棋游戏
2019/06/18 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
测试工程师程序员求职信范文
2014/02/20 职场文书
区级文明单位申报材料
2014/05/15 职场文书
材料化学专业求职信
2014/07/15 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
入党后的感想
2015/08/10 职场文书
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python