django + cropper 实现头像预览裁剪上传

本文介绍了如何结合前端Cropper插件和Django后台,实现实时预览并裁剪图片上传的功能。Cropper提供API用于图片裁剪,裁剪后的base64编码图片转换为blob发送至后端存储。
摘要由CSDN通过智能技术生成

思路:

使用cropper这个前端插件,对图片进行裁剪,cropper生成的截图,是一串base64的编码,再将其转为blob格式,传到后端,进行存储。简单的说就是前端裁剪好的图片,传到后端,而不是将裁减的数据值传到后端,在后端进行裁剪.


cropper的api:

https://github.com/fengyuanchen/cropper


cropper的简单使用:

html

<div>
  <img id="image" src="picture.jpg">
</div>

css

img {
  max-width: 100%; /*必填*/
}

js

var $image = $('#image');

$image.cropper({
  aspectRatio: 16 / 9,
  crop: function(event) {
    console.log(event.detail.x);
    console.log(event.detail.y);
    console.log(event.detail.width);
    console.log(event.detail.height);
    console.log(event.detail.rotate);
    console.log(event.detail.scaleX);
    console.log(event.detail.scaleY);
  }
});

//实例化
var cropper = $image.data('cropper');

使用cropper进行图片的裁剪

导入:
  <script src="{
   {
   STATIC_URL}}js/jquery.js"></script>
  <link  rel="stylesheet" type="text/css" href="{
   {
   STATIC_URL}}css/cropper.css" />
    <script src="{
   {
   STATIC_URL}}js/cropper.js" type="text/javascript" ></script>
css:
  body {
            font-size: 16px;
            font-family:"Microsoft YaHei",Arial, Helvetica, sans-serif
        }
        *,
        *:before,
        *:after {
            -webkit-box-sizing: border-box;
               -moz-box-sizing: border-box;
                -ms-box-sizing: border-box;
                    box-sizing: border-box;
        }

        .crop-picker-wrap {
            position: relative;
            width: 100px;
            height: 30px;
            overflow: hidden;
        }
        .crop-picker {
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值