图片转换为base64编码

<input type = "file"  id = "file" onchange="popFileName(this)" multiple = "multiple" name="点我上传"/>
<div id="imgContainer"></div>
<script src="C:\Users\bt.cn\Desktop\jquery-3.3.1.min.js"></script>
<script>
function popFileName(that) {
var path1 = document.getElementById("file").value;
console.log(path1); // C:\fakepath\ddd.jpg,这不是真实路径
var path2 = document.getElementById("file").files[0];
var objURL = getObjectURL(that.files[0]); // 这里的objURL就是input file的真实路径 var image = new Image();
image.src = objURL;
image.onload = function(){
var base64 = getBase64Image(image);
console.log(base64);
$('#imgContainer').html("<img src='" + objURL + "' width='"+image.width+"' height='"+image.height+"' id='target'/>");
}
} // 获取上传图片文件的真实路径
function getObjectURL(file) {
var url = null;
if (window.createObjcectURL != undefined) {
url = window.createOjcectURL(file);
} else if (window.URL != undefined) {
url = window.URL.createObjectURL(file);
} else if (window.webkitURL != undefined) {
url = window.webkitURL.createObjectURL(file);
}
return url;
} // 得到上传图片文件的base64编码
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
//var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
//var dataURL = canvas.toDataURL("image/"+ext);
var dataURL = canvas.toDataURL("image/jpeg");
return dataURL;
}
</script>

base64编码转换为图片

<div id="imgContainer"></div>
<textarea type="text" id="s1" rows="100" cols="100"></textarea>
<div onclick="work()" id ="d1">base64编码转成图片</div> <script src="C:\Users\bt.cn\Desktop\jquery-3.3.1.min.js"></script>
<script>
// 将base64转换为文件
function dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(',');
var mime = arr[0].match(/:(.*?);/)[1];
var bytes = window.atob(arr[1]); // 去掉url的头,并转化为byte
//let n = new ArrayBuffer(bytes.length); // 处理异常,将ascii码小于0的转换为大于0
var n = bytes.length,
u8arr = new Uint8Array(n); // 生成视图(直接针对内存):8位无符号整数,长度1个字节
while(n--){
u8arr[n] = bytes.charCodeAt(n);
}
// for (let i = 0; i < bytes.length; i++) {
// u8arr[i] = bytes.charCodeAt(i);
// }
// return new Blob([u8arr], {type: mime});
console.log(u8arr,"==>",[u8arr])
return new File([u8arr], filename, {type:mime});
} // 获取上传图片文件的真实路径
function getObjectURL(file) {
var url = null;
if (window.createObjcectURL != undefined) {
url = window.createOjcectURL(file);
} else if (window.URL != undefined) {
url = window.URL.createObjectURL(file);
} else if (window.webkitURL != undefined) {
url = window.webkitURL.createObjectURL(file);
}
return url;
} function work() {
var base64 = document.getElementById("s1").value;
var myFile = dataURLtoFile(base64,'testimg');
var imgURL = getObjectURL(myFile);
$('#imgContainer').html("<img src='" + imgURL + "' />");
// var image = new Image();
// image.src = imgURL;
// image.onload = function(){
// $('#imgContainer').html("<img src='" + imgURL + "' width='"+image.width+"' height='"+image.height+"' id='target'/>");
// }
}
</script>

https://blog.csdn.net/CGS_______/article/details/74078411

https://blog.csdn.net/qq_29099209/article/details/82800496

https://www.cnblogs.com/MainActivity/p/8550895.html

https://www.jianshu.com/p/e26aaca7e201

https://segmentfault.com/q/1010000012560812/a-1020000012562058

https://www.cnblogs.com/freeliver54/p/11002194.html

https://www.cnblogs.com/wangqiideal/p/5056918.html

JavaScript—图片与base64编码互相转换的更多相关文章

  1. JavaScript 图片与Base64数据互相转换脚本

    JavaScript 图片与Base64数据互相转换脚本 注: 转换过程中注意跨域问题.测试页是否支持相关标签创建.dom结构. 方法一:非Html 5使用FileReader 使用XMLHttpRe ...

  2. 用javascript实现base64编码器以及图片的base64编码

    前面的话 base-64作为常见的编码函数,在基本认证.摘要认证以及一些HTTP扩展中得到了大量应用.在前端领域,也常常把图片转换为base-64编码在网络中传输.本文将详细介绍base64的原理及用 ...

  3. 字符串与图片的Base64编码转换操作

    //图片 转为 base64编码的文本 private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = ne ...

  4. 图片和base64编码字符串 互相转换,图片和byte数组互相转换

    图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ...

  5. 图片的base64编码通过javascript生成图片--当前URL地址的二维码应用

    前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...

  6. HTML5之图片转base64编码

    之前在群里看到很多小哥哥小姐姐讨论关于图片base64互转的方法,刚好我之前用到的一个方法给大家分享一下. <!Doctype html><html> <head> ...

  7. JS 获取图片的base64编码

    获取图片的base64编码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  8. H5 Js图片转base64编码

    <!Doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. js将图片转为base64编码,以字符串传到后台存入数据库

    (前台在中approve_edit.html中,后台不变) 链接参考:http://www.cnblogs.com/Strom-HYL/p/6782176.html 该链接文中并没有用到easyUI的 ...

随机推荐

  1. WGS84、WebMercator、GCJ02和BD09坐标系简介与转换

    WGS84(GPS): 地心坐标系,空间直角坐标系,原点与地球质心重合,为GPS采用的坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系. 通过GPS可以直接获取WGS84下的坐标(B,L, ...

  2. Dynamics 365 Online-Delete Audit History Data

    Dynamics 365 CE自带的Audit功能,虽然不会给我们的业务流程带来显著变化,但是这个功能对于我们追溯数据变化的历史,诊断定制触发的执行,以及数据还原等,都是不可或缺的关键先生.尤其是涉及 ...

  3. 【React Native】进阶指南之二(手势响应系统)

    移动设备上的手势识别要比在 web 上复杂得多.用户的一次触摸操作的真实意图是什么,App 要经过好几个阶段才能判断.比如 App 需要判断用户的触摸到底是在滚动页面,还是滑动一个 widget,或者 ...

  4. iOS---------开发中 weak和assign的区别

    weak和assign的区别-正确使用weak.assign 一.区别 1.修饰变量类型的区别weak只可以修饰对象.如果修饰基本数据类型,编译器会报错-“Property with ‘weak’ a ...

  5. 这些Android系统样式中的颜色属性你知道吗?

    Android 系统样式中的颜色属性 推荐阅读看完后彻底搞清楚Android中的 Attr . Style .Theme 几个常用的颜色属性 先放上一张经典的图片,图片来自网络. 这张图在网上很是流传 ...

  6. jenkins构建找不到python依赖

    最近在搞jenkins自动构建,遇到这样一个问题,我装的python相关的依赖在X用户下,但是jenkins在root下运行的,所以找不到相关的import 1. 执行pip freeze,会打印相关 ...

  7. SpringBoot高版本修改为低版本时测试类报错解决

    有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBoot项目. 这是如果想要换成版本,就可以在项目创建好了之后,在pom文件中直接将版本修改过来 ...

  8. andorid popupwindow 更新时动画的实现,可实现一个窗口被一个窗口推上去的效果

    最近由于项目需要,一直在寻找一个弹出窗口,在另一个弹出窗口弹出时,推上去的效果,居然找不到,经过不懈的努力,终于实现了popupwindow在更新时的动画. 先上代码: import android. ...

  9. python 格式化打印

    #coding=utf-8 import time; start_time = time.time()for a in range(0,1001): for b in range(0,1001): f ...

  10. 开发工具IntelliJ IDEA

    开发工具概述 IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中, ...