怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,本篇内容主要讲解"怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用cropper.j
千家信息网最后更新 2025年02月19日怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转
本篇内容主要讲解"怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转"吧!
做了一个头像上传的小功能,同时处理了ios竖着拍照图片旋转的问题。cropper.js(注意:cropper压缩版的js在手机版版缩放图片会有黑屏和图片飞了的bug,所以建议引入开发版本的cropper)依赖jquery,exif是用来获取拍照信息的,用于修复ios竖着拍照旋转的问题,我用的是amazeui框架,我在文件中也引入。
这是html文件
cropper图片裁剪缩放 关闭上传
左 右
这是js文件
$(function() { 'use strict'; // 初始化 var $image = $('#image'); $image.cropper({ aspectRatio:1/1, viewMode : 1, autoCropArea:0.8, dragMode:'move', cropBoxMovable:false, cropBoxResizable:false, zoomOnTouch:true, zoomable:true, movable:true, }); var $inputImage = $('#inputImage'); var URL = window.URL || window.webkitURL; var Orientation var rotate_num var blobURL; if (URL) { $inputImage.change(function () { var files = this.files; var file; if (files && files.length) { file = files[0]; if (/^image\/\w+$/.test(file.type)) { blobURL = URL.createObjectURL(file); $image.attr("src",blobURL) EXIF.getData(file, function() { EXIF.getAllTags(this); Orientation = EXIF.getTag(this, 'Orientation'); }); $image.one('built.cropper', function () { // Revoke when load complete URL.revokeObjectURL(blobURL); }).cropper('reset', true).cropper('replace', blobURL); $inputImage.val(''); } else { window.alert('Please choose an image file.'); } } }); } else { $inputImage.prop('disabled', true).parent().addClass('disabled'); } $('#up-btn-ok').on('click',function(){ var img_src=$image.attr("src"); if(img_src==""){ $('#my-alert').modal('open'); return false; } var url=$(this).attr("url"); var canvas=$("#image").cropper('getCroppedCanvas'); var cv_img = document.createElement("canvas"); var ctx = cv_img.getContext("2d"); var x = canvas.width/2; var y = canvas.height/2; cv_img.width =canvas.width; cv_img.height =canvas.width; ctx.clearRect(0,0, canvas.width, canvas.height);//先清掉画布上的内容 ctx.translate(x,y);//将绘图原点移到画布中点 if(Orientation == 6) { ctx.rotate(Math.PI/2); } else if(Orientation == 3) { ctx.rotate(-Math.PI/2); } else if(Orientation == 8) { ctx.rotate(Math.PI/1); } ctx.translate(-x,-y);//将画布原点移动 ctx.drawImage(canvas,0,0); var data=cv_img.toDataURL("image/jpeg"); $("#pic_img").attr("src",data) $('#new_pic').val($("#pic_img").attr("src")); $('#doc-modal-1').modal('close'); });});function rotateimgright() { $("#image").cropper('rotate', 90);}function rotateimgleft() { $("#image").cropper('rotate', -90);}function set_alert_info(content){ $("#alert_content").html(content);}
到此,相信大家对"怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
图片
头像
内容
文件
画布
原点
这是
问题
学习
实用
更深
中点
信息
兴趣
功能
同时
实用性
实际
建议
手机
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎么压缩服务器上传图片
网络安全性类型怎么选
来赞达网络技术有限公司官网
北京工业服务器及存储物理机
软件开发转型怎么转
软件开发考什么证有用
长春软件开发有名吉网传媒优
软件开发常见面试问题回答
计算机网络技术的初始岗位
dell服务器电源功率
超微服务器备份盘设置
浙江机架式服务器机箱工厂云空间
医疗器械网络安全风险特征清单
不能够提供全文的数据库
博物馆展厅智能中控服务器
京东软件开发笔试题
我的世界免费基岩版服务器
淮安荔枝网络技术有限公司
创造与魔法合并的服务器
浙江搜到网络技术有限公司
Bms软件开发百度网盘
开源网络安全
电脑自己搭建服务器
网络安全 日程安排 定期或
如何在服务器里成为管理员
徐州市网络安全文件
网络安全在我身边的手抄报
广州ai服务器生产厂商
软件开发总结与展望
我的世界能不能自己创建服务器