问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

手机如何裁剪照片尺寸

发布网友 发布时间:2022-04-20 17:08

我来回答

2个回答

懂视网 时间:2022-05-15 11:47

这次给大家带来图片裁剪上传功能的实现,图片裁剪上传功能实现的注意事项有哪些,下面就是实战案例,一起来看一下。

前些日子做了一个项目关于vue项目需要头像裁剪上传功能,看了一篇文章,在此基础上做的修改完成了这个功能,与大家分享一下。原文:http://www.gxlcms.com/article/135719.htm

首先下载引入cropper js,

npm install cropper js --save

在需要的页面引入:import Cropper from "cropper js"

html的代码如下:

<template> 
 <p id="demo"> 
 <!-- 遮罩层 --> 
 <p class="container" v-show="panel"> 
 <p> 
 <img id="image" :src="url" alt="Picture"> 
 </p> 
 <button type="button" id="button" @click="commit">确定</button> 
 <button type="button"id="cancel" @click="cancel">取消</button> 
 </p> 
 <p style="padding:20px;"> 
 <p class="show"> 
 <p class="picture" :style="'backgroundImage:url('+headerImage+')'"> 
 </p> 
 </p> 
 <p style="margin-top:20px;text-align: left;"> 
 <input type="file" id="change" accept="image" @change="change"> 
 <label for="change"></label> 
 </p> 
 </p> 
 </p> 
</template>

主要是js代码,如下

1,data里面定好初始变量,绑定数据,imgCropperData是我定义的判断图片格式的。

data() { 
 return { 
 headerImage: "", 
 picValue: "", 
 cropper: "", 
 croppable: false, 
 panel: false, 
 url: "", 
 imgCropperData: { 
 accept: "image/gif, image/jpeg, image/png, image/jpg" 
 } 
 }; 
 }

2,在mounted里面初始换裁剪框

mounted() { 
 //初始化这个裁剪框 
 var self = this; 
 var image = document.getElementById("image"); 
 this.cropper = new Cropper(image, { 
 aspectRatio: 1, 
 viewMode: 1, 
 background: false, 
 zoomable: false, 
 ready: function() { 
 self.croppable = true; 
 } 
 }); 
 }

3.methods的方法比较多,包括创建URL路径,input框change事件,canvas画图,确定提交上传。我还加了取消事件函数,判断上传文件的类型和大小。

methods: { 
 //取消上传 
 cancel() { 
 this.panel = false; 
 var obj = document.getElementById('change') ; 
 obj.outerHTML=obj.outerHTML; 
 }, 
 //创建url路径 
 getObjectURL(file) { 
 var url = null; 
 if (window.createObjectURL != undefined) { 
 // basic 
 url = window.createObjectURL(file); 
 } else if (window.URL != undefined) { 
 // mozilla(firefox) 
 url = window.URL.createObjectURL(file); 
 } else if (window.webkitURL != undefined) { 
 // webkit or chrome 
 url = window.webkitURL.createObjectURL(file); 
 } 
 return url; 
 }, 
 //input框change事件,获取到上传的文件 
 change(e) { 
 let files = e.target.files || e.dataTransfer.files; 
 if (!files.length) return; 
 let type = files[0].type; //文件的类型,判断是否是图片 
 let size = files[0].size; //文件的大小,判断图片的大小 
 if (this.imgCropperData.accept.indexOf(type) == -1) { 
 alert("请选择我们支持的图片格式!"); 
 return false; 
 } 
 if (size > 5242880) { 
 alert("请选择5M以内的图片!"); 
 return false; 
 } 
 this.picValue = files[0]; 
 this.url = this.getObjectURL(this.picValue); 
 //每次替换图片要重新得到新的url 
 if (this.cropper) { 
 this.cropper.replace(this.url); 
 } 
 this.panel = true; 
 }, 
 //确定提交 
 commit() { 
 this.panel = false; 
 var croppedCanvas; 
 var roundedCanvas; 
 if (!this.croppable) { 
 return; 
 } 
 // Crop 
 croppedCanvas = this.cropper.getCroppedCanvas(); 
 // Round 
 roundedCanvas = this.getRoundedCanvas(croppedCanvas); 
 this.headerImage = roundedCanvas.toDataURL(); 
 //上传图片 
 this.postImg(); 
 }, 
 //canvas画图 
 getRoundedCanvas(sourceCanvas) { 
 var canvas = document.createElement("canvas"); 
 var context = canvas.getContext("2d"); 
 var width = sourceCanvas.width; 
 var height = sourceCanvas.height; 
 canvas.width = width; 
 canvas.height = height; 
 context.imageSmoothingEnabled = true; 
 context.drawImage(sourceCanvas, 0, 0, width, height); 
 context.globalCompositeOperation = "destination-in"; 
 context.beginPath(); 
 context.arc( 
 width / 2, 
 height / 2, 
 Math.min(width, height) / 2, 
 0, 
 2 * Math.PI, 
 true 
 ); 
 context.fill(); 
 return canvas; 
 }, 
 //提交上传函数 
 postImg() { 
 alert("上传成功"); 
 //这边写图片的上传 
 } 
 }

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

怎样实现微信web端后退强制刷新

React BootStrap框架如何使用

react native使用fetch上传图片

怎样让webpack打包后的文件压缩变小

热心网友 时间:2022-05-15 08:55

图片裁剪是日常生活中常用的功能,在电脑上可以使用屏幕截图,美图秀秀等功能来进行制作,那么在裁剪手机图片的时候,如何使用手机裁剪图片呢?随着科技的快速发展,网上出现了许多操作简单好用的手机图片裁剪工具,无需下载任何软件,通过浏览器就可以操作,下面教大家如何使用压缩图的图片裁剪功能,来完成在线图片裁剪。

打开手机自带浏览器,搜索压缩图,点击搜索出的网站地址进入。

点击导航栏中的图片裁剪功能,跳转到图片裁剪的功能页面,点击下方上传图片,将需要进行裁剪的图片上传到网站。

图片裁剪功能支持输入自定义裁剪框的宽和高,根据所需尺寸来进行裁剪,还能够放大、缩小上传的图片,将图片左右旋转,反转,移动,上下反转,移动等功能,以及提供常用的图片比例进行裁剪,并且可在下方输出裁剪后图片的宽度和高度。

完成参数设置之后,点击上方保存按钮,在弹出提示框中点击另存为,然后下载图片到相册中,即可裁剪出自己想要的图片尺寸。

以上就是压缩图在线图片裁剪的操作过程,裁剪完成后还能够一键导出所需的图片尺寸,无需再次对图片进行拉伸或者缩小,并且如果生成的图片文件太大,还能够使用压缩图的图片压缩功能,对图片进行压缩,缩小图片的文件大小,这么好用的手机图片裁剪工具大家赶紧收藏起来吧!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瑞安皇都大厦几个电梯 办签证和护照的具体步骤和一共的费用!我需要详细一点的答案. 办护照流程 办护照的流程是什么 哪位推荐几部韩剧啊!!要像豪杰春香,魔女幼熙这样的,剧情要感人,最好是... 小阴唇内应该是光滑的吗,阴道口痒为什么 阴道口有像草莓样正常吗 任氏族谱字辈:世秉忠贞 永达明玉起 国正天元律迎祖大继昌 河南夏氏家谱辈分我是永城市酂城镇夏氏夏世界具家谱记载洪武二年始祖良... 夏侯姓字辈排行 夏氏辈行,我爷爷明字辈,我父亲应字辈,我是崇字辈,后面是什么辈? 打开的椰子放了一晚上,第二天还能不能继续喝? 怎样修照片的大小 晚上打开的椰子汁放冰箱里第二天还能喝吗? 瓶装椰汁在保质期里放在车后备箱里长时间能喝吗? 把椰子汁喝完以后,把椰子撬开,吃椰子肉,但是没... 椰汁拿铁开封后能放到第二天喝吗? 椰汁开后放冰箱3天了还能喝么 椰子汁过夜能喝吗 生榨椰子汁打开后放了将近半个月还能喝吗? 这种椰汁开封后没放冰箱,过了24小时还能喝吗? 椰子汁开盖后又合盖放在冰箱冷藏七天后还能喝吗? 如何结合培训内容开展岗位校本研修的?您有何收获? 新鲜椰子能放多久 校本培训的有效形式有哪些 白皮椰子汁可以放多久 校本培训有哪些内容 包装好的椰子汁保质期是多少时间 谈谈学校如何组织和实施校本培训 开过封的瓶装椰汁放了很久还能喝吗? 什么是校本研修 手机上网流量降速了怎么办 vivo手机4g变成2g怎么恢复? 假如在英雄联盟中有100个小兵,那么哪个英雄清兵最... 英雄联盟LOL,求教文森特的德莱文的那种清兵方式 LOL为什么不能清兵太快 移动流量降速怎么解决 给冰箱除霜后一直不停机 除完霜后冰箱不停机怎么回事 冰箱除霜重新启动压缩机一直工作不停什么原因? 电冰箱断电在除霜之后重新启动的时候为啥12小时之... 冰箱除冰后再启压缩机不停的原因← 冰箱除冰后再启压缩机不停的原因←? 冰箱制冷正常,但压缩机一直不停,什么原因呢 冰箱不 冰箱在除冰之后一直不停机而且冷藏不制冷是什么原因? 冰箱关掉除霜重启后,一直工作不停机,怎么办 冰箱除冰后转了一天都没停正常吗 风冷冰箱化霜时间长,压缩机不停机 三星原装对开门冰箱除霜后噪音大,不停机是怎么回事? 冰箱在除霜之后运转正常也制冷但是就是不停机温度... 我五年前买的海信冰箱,前几天停机除霜后就一直制...