javascript从image转换为String

   最近需要把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">
  
  <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>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 JavaScript 中将 base64 编码转换为图片可以使用以下步骤: 1. 创建一个 Image 对象。 2. 设置该 Image 对象的 src 属性为 base64 编码的字符串。 3. 将该 Image 对象添加到 HTML 页面中的某个元素中。 以下是一个示例代码: ```javascript // 假设 base64EncodedImage 是包含 base64 编码的图片数据的字符串 const base64EncodedImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AwQESgG8NXDgAAAgRJREFUWMPN1zFqAkEUx3eZI3+ZJoQzqxO22oi06D1IF/pRtbO9YtpOvqlUGgEiitZOkkj3qoFgSNbSJstHYqiRIrHSrK1rTsw1sUvC6Uebw+f+OZ56BTPmEiBCe8tkmFmGezADGmYfLOosvpkHiws7A+c4ZDnV7owNlAjSt8WbSwCtFXlH9N2mw5v5xWxwRZj5iZb/JvIm1WnoG8fOKFQXbZYugMB0zeiVdL8gWWxy4V7D1SHvOBrml7i8ykJjKXg3q5f5QWlg5xZcwog+tlZopM07MUsieogpjMk8oNbS9XxfktgT+TRKb6T8U6W4Uv1s+6kLff6Q/TLhV9xEvzLYf7VDPbhR1pyhHe1NNTfeH3qfOL67k18+ev8V7z9hMd0xV7qqEylLZpW7ZiurCxq3V7rgu3B32M77mnX9fOUxLx6bckAAAAASUVORK5CYII="; // 创建一个 Image 对象 const img = new Image(); // 设置 Image 对象的 src 属性为 base64 编码的字符串 img.src = base64EncodedImage; // 将 Image 对象添加到 HTML 页面中的某个元素中 const imgContainer = document.getElementById("image-container"); imgContainer.appendChild(img); ``` 这将在 id 为 "image-container" 的元素中显示转换后的图片。注意,这里使用的是 base64 编码的 PNG 图片数据,如果使用的是其他格式的图片,需要将 "data:image/png" 替换为相应的 MIME 类型。 ### 回答2: JavaScript可以通过以下代码将Base64编码转换为图片: ```javascript function convertBase64ToImage(base64String) { var img = document.createElement('img'); img.src = base64String; document.body.appendChild(img); } ``` 上述代码中,我们首先创建了一个`<img>`元素,然后将传入的Base64字符串赋值给它的`src`属性。最后,将该图像元素添加到文档的`<body>`标签中,以显示图像。 使用示例: ```javascript var base64String = "data:image/png;base64,iVBORw0KGg...."; convertBase64ToImage(base64String); ``` 在上面的示例中,`base64String`变量包含一个Base64编码的PNG图像字符串。调用`convertBase64ToImage`函数后,图像将被显示在文档中。 请注意,为了使该方法正常工作,需要将`src`属性设置为有效的Base64图像字符串。此外,由于上传的图像可能很大,可能会导致浏览器内存占用过高或加载时间过长,因此在实际应用程序中,请谨慎使用此方法。 ### 回答3: 在JavaScript中,要将base64编码的数据转换为图片,可以使用以下步骤: 1. 首先,获取到包含base64编码的字符串。这个字符串通常是一个数据URL,以"data:image/png;base64,"开头,后面跟着一段base64编码的图片数据。 2. 接下来,需要创建一个Image对象。可以使用`new Image()`来创建一个新的Image实例。 3. 将上一步获取到的base64字符串赋值给Image对象的src属性。例如,可以使用`image.src = base64String`将base64字符串赋值给Image对象。 4. 在Image对象的load事件中,可以使用Canvas来绘制图片。创建一个Canvas元素,并设置其宽高与图片的宽高相同。 5. 将Image对象绘制到Canvas上,可以使用`context.drawImage(image, 0, 0, canvas.width, canvas.height)`将Image对象绘制到Canvas的左上角。 6. 最后,可以通过调用Canvas的`toDataURL()`方法将Canvas中的图片数据转换base64编码的字符串。 下面是一个示例代码: ```javascript // 获取包含base64编码的字符串 let base64String = "data:image/png;base64,iVBORw0KG..."; // 创建一个Image对象 let image = new Image(); // 将base64字符串赋值给Image对象 image.src = base64String; // 在Image对象的load事件中,绘制图片到Canvas image.onload = function() { // 创建一个Canvas元素 let canvas = document.createElement('canvas'); // 设置Canvas的宽高与图片的宽高相同 canvas.width = image.width; canvas.height = image.height; // 绘制图片到Canvas let context = canvas.getContext('2d'); context.drawImage(image, 0, 0, canvas.width, canvas.height); // 将Canvas中的图片数据转换base64编码的字符串 let convertedBase64 = canvas.toDataURL(); console.log(convertedBase64); }; ``` 以上就是使用JavaScriptbase64编码的数据转换为图片的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值