千家信息网

怎么用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服务器生产厂商 软件开发总结与展望 我的世界能不能自己创建服务器
0