首页 > 其他分享 >js上传图片裁剪

js上传图片裁剪

时间:2022-08-20 18:56:36浏览次数:42  
标签:裁剪 js fileImg let blob cropper 上传 图片

最近做一个图片上传需要裁剪一下的功能然后百度了一下,找到了cropperjs

说明文档 https://www.npmjs.com/package/cropperjs

 

这是一个简单的基础使用 

<!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <meta http-equiv="X-UA-Compatible" content="IE=edge">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>上传图片</title>   <!-- 样式 -->   <link rel="stylesheet" href='./node_modules/cropperjs/dist/cropper.css' />   <!-- js  -->   <script src="./node_modules/cropperjs/dist/cropper.js"></script>   <style>     .allbox{       width: 100%;       display: flex;       margin-bottom: 20px;     }
    /* 装上传图片 */     .box1{       width: 500px;       height: 500px;       background: rgba(40, 40, 40, 0.3);     }     /* 被裁剪展示图片容器 */     .box2{       width: 100px;       height: 100px;       margin-left:100px;     }
  </style> </head> <body>   <div class="allbox">     <!-- 展示图片 -->     <div class="box1">       <img id="img1">     </div>
    <div class="box2">
    </div>   </div>   <input id="input1" type="file"></input>   <button id="button1">保存图片</button>
  <script>
    let img1 =document.getElementById('img1')     let input1 = document.getElementById('input1')     let button1 = document.getElementById('button1')
    // 上传的图片储存一下     let fileImg;     // 声明一个变量     let cropper = new Cropper(img1,{       aspectRatio:1/1,  // 裁切比例       viewMode:1, // 0 无限制 1 裁剪框不超过图片 2具体个1差不多没看出 ,3拉伸图片       autoCropArea: 0.5 , //裁切框大小 默认0.8(原图的80%)       // 跟多配置选项  https://www.npmjs.com/package/cropperjs     })
    //上传图片时     input1.onchange = (event) => {
      fileImg = event.target.files[0]
      // cropper.replace(url,[hasSameSize]) 设置图片 hasSameSize type:Boolean,Default: false       cropper.replace(URL.createObjectURL(fileImg),false)
    }
    // 保存时     button1.onclick = () => {       let base64Img = cropper.getCroppedCanvas().toDataURL()       console.log(base64Img)       cropper.getCroppedCanvas().toBlob((blob) => {         // 得到 blob 图片         console.log('blob',blob)         // 得到 file 文件
        console.log('file',new window.File([blob], fileImg.name, {type: fileImg.type}))       })     }
  </script>   </body> </html>    

标签:裁剪,js,fileImg,let,blob,cropper,上传,图片
From: https://www.cnblogs.com/xuxu25/p/16608307.html

相关文章

  • js购物车实现
    1.添加购物车<style>*{margin:0;padding:0;}#addGoodContent{border-radius:5px;......
  • js主要兼容写法
    事件对象兼容:lete=evt||event//凡是使用到事件的时候无脑兼容阻止事件冒泡的兼容:e.stoPropagation?e.stopPropagation():e.cancelBubble=true阻止浏览器......
  • MySQL JSON函数文档搬运
    本文搬运了MySQL对JSON的支持相关的函数/*自MySQL5.7版本以后,加入了JSON字段类型支持,并提供一系列函数实测字段类型设置为varchar,只要字段值为合法json,MYSQLJSO......
  • JS 作用域和作用域链
    js的作用域是让我们访问变量和函数的区域,作用域规定了如何查找变量;js有两种作用域:全局作用域,局部作用域;局部作用域又可分为函数作用域,块级作用域和其它具体的作用域......
  • Java List转 JSONObject
    JavaList转JSONObjectpom.xml<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>......
  • JSON的概念和语法定义
    JSON的概念概念:JavaScriptObjectNotationJavaScript对象表示法json现在多用于存储和交换文本信息的语法进行数据的传输JSON比XML更小、更快,更易解析JSON是轻量......
  • js里面的三种注释方法
    https://www.cnblogs.com/rubylouvre/p/3649999.htmljavascript(js)语言里面的注释方法有三种。第一种是多行注释"/**/",一般js文件开头,介绍作者,函数等信息。/......
  • delphi基于结构的CRUD(JSON)
    delphi基于结构的CRUD(JSON)以采购订单为例。unitrest.tcgddtcgdd2;//代码由代码工厂自动生成//2022-08-2016:04:54{$Idef.inc}interfaceuses{$IFDEFfiredac......
  • JSON概念和JSON语法的定义与值的获取
    JSON概念概念: JavaScript Object NotationJavaScript对象标记法var p={"name":"张三","age":23,"gender":"男"}; json现在多用于存储和交换文本信息的语法......
  • FireDAC使用Mormot开发Rest服务器,返回JSON数据格式的问题
    FireDAC沿用了一贯的DataSnap的数据返回方式,这也使得开发出来的REST Server很给难给第三方应用提供服务用什么办法可以解决FireDAC直接序列返回的Json只是数据信息,而不是......