千家信息网

怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容主要讲解"怎么用cropper.js和exif.js实现头像上传缩放裁剪旋转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用cropper.j
千家信息网最后更新 2025年01月22日怎么用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安全错误 数据库的锁怎样保障安全 在数据库上全部下载的办法 国家网络安全大楼图片 沂南im即时通讯软件开发 服务器安全等保 mssql数据库安全产品 计算机网络技术适合什么样的人 传感器网络技术和特点 汉语教学网络技术 app软件开发人员外包合同 信息网络安全管理暂行办法 从事软件开发的人很少 软件开发进度排期模板 烘箱智能控制方法研究及软件开发 计算机网络安全应急故障修复 龙口安卓软件开发解决方案 新浪微博用的啥数据库 参数有误服务器无法解析dns 淄博考勤管理oa软件开发公司 金蝶财务软件开发正式完整版 怎样快速删除数据库2000 网络安全和信息化业务培训 服务器没有权限能用命令方块吗 人行网络安全宣传 信息网络安全漏洞分析工具 绿湾科技参加互联网大会 华为软件开发总部入驻昆明 软件开发学院课程 数据库 memcache pc方舟服务器列表怎么删除 如何停止sql数据库运行
0