HTML之图像数据base64、object file之间的相互转换

简介: HTML之图像数据base64、object file之间的相互转换

1、图片转换base64


function getImgToBase64(url,callback){//将图片转换为Base64
    var canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d'),
    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('image/png');
        callback(dataURL);
        canvas = null;
    };
    img.src = url;
}


2、base64转换成file object


function dataURLtoFile(dataurl, filename) {//将base64转换为文件
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while(n--){
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new File([u8arr], filename, {type:mime});
}
//可以将图片转换为base64
getImgToBase64('img/test.png',function(data){
   var myFile = dataURLtoFile(data,'testimgtestimgtestimg');
   console.log(myFile);
});

3、base64绘制到canvas上面


<canvas id="myCanvas" width="800" height="800"></canvas>
<script> 
var
    img = new Image();
    img.src=imgbase64;
    let myCanvas =$("#myCanvas").get(0);
    myCanvas.getContext('2d').drawImage(img,0,0);
    myCanvas.getContext('2d').fillText("32中文132",50,50);
</script>

   裁剪图片:

<script>
    var t = this;
    $(function(){
        $("#crop_img").click(function(){
            t.editPic = document.getElementById('edit_pic'); //
            let cord = document.getElementById("x_y").value;
            let x11=cord.split(",")[0];
            let y11=cord.split(",")[1];
            let x22=cord.split(",")[2];
            let y22=cord.split(",")[3];
            t.editPic.height = y22-y11;
            t.editPic.width = x22-x11;
            var ctx = t.editPic.getContext('2d');
            var images = new Image();
            images.src = document.getElementById('show_img').src;
            images.onload = function(){
                ctx.drawImage(images, x11, y11, x22-x11, y22-y11, 0, 0, x22-x11, y22-y11,);
                document.getElementById('show_crop').src = t.editPic.toDataURL("image/jpeg");
            };
        });
    });
</script>
<body>
    <img id="show_img" src=""><br />
    <canvas id="edit_pic"></canvas>
    <input type="text" name="coor" placeholder="坐标" readonly="true" id="x_y" style="width: 600px"><br>
    <img id="show_crop" src=""><br />
</body>


 


相关文章
|
7天前
|
前端开发 数据处理
对象数据的读取,看这一篇就够了!Object.keys()、Object.values()和Object.entries()用法详解;如何获取对象原型链上的属性
Object.keys()、Object.values()和Object.entries()都是利于对象操作的便捷方法,能有效提升数据处理的效率。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
4月前
|
存储
HTML 图像1
在HTML中,图像通过`&lt;img&gt;`标签定义,此标签仅含属性而无闭合标签。要显示图像,需指定源属性`src`,其值为图像的URL地址。此外,推荐使用`alt`属性提供替代文本,以增强页面的可访问性。图像的高度和宽度可通过`height`和`width`属性设置,以确保页面加载时布局稳定。使用图像时应注意数量和路径,避免影响页面加载速度和显示效果。
|
6月前
|
前端开发 JavaScript
html图像属性的高级用法
在HTML中,通过结合CSS、JavaScript及其他HTML元素,可以实现图像属性的高级用法,例如响应式图像、懒加载、图像映射、CSS滤镜、SVG图像、图像作为背景以及使用JavaScript动态更改图像。
|
6月前
|
前端开发
html图像属性详解
在 HTML 中,使用 `&lt;img&gt;` 标签插入图像。主要属性包括:`src` 指定图像路径,`alt` 提供替代文本,`width` 和 `height` 设置尺寸,`title` 显示额外信息,`loading` 控制加载方式(如 `lazy` 延迟加载),`class` 和 `style` 用于样式化,`usemap` 定义图像映射,`ismap` 表示服务器端映射。这些属性可组合使用以实现复杂效果。
|
6月前
|
编解码 前端开发
HTML 图像的高阶写法
在 HTML 中,通过使用多种属性和技术可以增强图像的功能、可访问性和性能
|
6月前
|
前端开发 JavaScript
改变 HTML 图像
【9月更文挑战第03天】
72 3
|
7月前
|
应用服务中间件 Shell 网络安全
nginx安装提示 libssl.so.3: cannot open shared object file: No
【8月更文挑战第1天】### 原因 未将安装的ssl中的`libssl.so.3`链接到`/usr/lib`导致缺失。 ### 解决方案 1. 检查openssl是否已安装,若为低版本则需重装。 ```sh whereis openssl
3306 6
|
7月前
|
存储 关系型数据库 MySQL
|
7月前
|
Ubuntu
Ubuntu22.04,AOSP编译报错: libncurses.so.5: cannot open shared object file: No such file
本文描述了在Ubuntu 22.04系统上编译AOSP时遇到的`libncurses.so.5`缺失错误,并提供了通过安装相应库解决该问题的步骤。
1094 0
|
8月前
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
797 2