怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本篇内容主要讲解"怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用cropper.j
千家信息网最后更新 2024年11月26日怎么用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安全错误
数据库的锁怎样保障安全
移动支付需要网络安全吗
数据库身份证什么类型
2012服务器管理器rdp服务
网络安全工作四个坚持
辽宁通信软件开发服务标准
唐河直播软件开发
33岁学软件开发销售
销售管理数据库需求分析
日媒互联网科技
小学三年级网络安全征文
网络安全分析检验考研
北京万德嘉安全行车服务器
小班开展网络安全
数据中心网络安全需求分析
计算机网络技术英语术语
社区服务器csgo老掉线
绿坝数据库
登录与 数据库用户
hsqldb数据库
区发改局网络安全工作总结
网页游戏服务器多少钱
学软件开发的教材
有哪些好的互联网科技信息公众号
代码同步是数据库同步吗
福建省数据库管理技术
移动互联网科技馆
北京万德嘉安全行车服务器
长沙蓝博网络技术有限公司怎么样
软件开发 发展路径
东莞盲盒软件开发平台