cropper,2024年最新面试官的灵魂拷问

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

  1. cropstart—剪裁框开始移动执行的函数。

类型:Function 默认:null

  1. cropmove—剪裁框移动时执行的函数。

类型:Function 默认:null

  1. cropend—剪裁框移动结束执行的函数。

类型:Function 默认:null

  1. crop—剪裁框发生变化执行的函数。

类型:Function 默认:null

  1. zoom—剪裁框缩放的时候执行的函数。

类型:Function 默认:null

$(‘#image’).cropper({

aspectRatio: 16 / 9,

viewMode:1,

dragMode:‘none’,

preview:“.small”,

responsive:false,

restore:false,

// modal:false,

// guides:false,

// background:false,

// autoCrop:false,

// autoCropArea:0.1,

// movable:false,

// scalable:false,

// zoomable:false,

// wheelZoomRatio:false,

// cropBoxMovable:false,

// cropBoxResizable:false,

ready:function () {

console.log(“ready”);

},

cropstart: function (e) {

console.log(“cropstart”);

},

cropmove: function (e) {

console.log(“cropmove”);

},

cropend: function (e) {

console.log(“cropend”);

},

crop: function (e) {

console.log(“crop”);

},

zoom: function (e) {

console.log(“zoom”);

},

});

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 31

  • 32

  • 33

  • 34

  • 35

  • 36

  • 37

这里写图片描述

Methods 方法

=========================================================================

使用方法示例:

$().cropper({

ready: function () {

$().cropper(‘method’, argument1, , argument2, …, argumentN);

}

});

  • 1

  • 2

  • 3

  • 4

  • 5

  1. crop() 手动显示裁剪框

$(“#image”).cropper({

autoCrop: false, //关闭自动显示裁剪框

ready: function () {

$(this).cropper(‘crop’);

}

});

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

2 . reset()—-将图像和裁剪框重置为初始状态

reset

//-----------------------------

$(“#reset”).on(“click”, function () {

$(‘#image’).cropper(‘reset’);

})

  • 1

  • 2

  • 3

  • 4

  • 5

3 . clear()—清除裁切框

$(“#clear”).on(“click”, function () {

$(‘#image’).cropper(‘clear’);

})

  • 1

  • 2

  • 3

4 . replace(url[, onlyColorChanged])—替换图像的src并重新构建cropper

url :–类型String;—新图片的url;

onlyColorChanged (optional):–类型:Boolean默认:false;—-如果只是改变颜色,而不是大小,那么cropper只需要改变所有相关图像的src,不需要重新构建cropper。这可以用于应用过滤器。(意思是:改成true,图像的比例会发生变化自适应父盒子的大小;会失真的)

$(“#replace”).on(“click”, function () {

$(‘#image’).cropper(‘replace’,“./images/111.jpeg”,true );

})

  • 1

  • 2

  • 3

这里写图片描述 这里写图片描述

5 . enable()—解锁,锁定的裁切框(与disable相对应)

$(“#enable”).on(“click”, function () {

$(‘#image’).cropper(‘enable’);

})

  • 1

  • 2

  • 3

6 . disable()—锁定的裁切框(裁切框不可移动)(与enable相对应)

$(“#disable”).on(“click”, function () {

$(‘#image’).cropper(‘disable’);

})

  • 1

  • 2

  • 3

7 . destroy()—销毁cropper并从图像中删除整个cropper。

$(“#destroy”).on(“click”, function () {

$(‘#image’).cropper(‘destroy’);

})

  • 1

  • 2

  • 3

8 . move(offsetX[, offsetY])—使用相对偏移量移动图像(裁切框不移动)。

offsetX–类型:Number;在水平方向上移动(px)

offsetY –类型:Number;在垂直方向上移动(px);如果不存在,其值和offsetX相同;

$(“#move1”).on(“click”, function () {

$(‘#image’).cropper(‘move’, 1, 0);

})

$(“#move2”).on(“click”, function () {

$(‘#image’).cropper(‘move’, 0, -1);

})

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

9 . moveTo(x[, y])—-将画布(图像包装器)移动到一个绝对点

X–类型:Number;画布canvas距离left的值;

Y –类型:Number;画布canvas距离top的值;如果不存在,其值和X相同;

10 . zoom(ratio)—放大图片,并使用相对比例。(裁切框不变化)

$(‘#image’).cropper(‘zoom’, 0.1);

$(‘#image’).cropper(‘zoom’, -0.1);

  • 1

  • 2

11 . zoomTo(ratio)—-将画布(图像包装器)放大到一个绝对比例

ratio:类型Number—要放大的比例

$(‘#image’).cropper(‘zoomTo’, 1); // 1:1 (canvasData.width === canvasData.naturalWidth)

  • 1

12 . rotate(degree)—旋转图像以一定的角度

degree—类型: Number

向右旋转 (degree > 0);向左旋转 (degree < 0);

$(‘#image’).cropper(‘rotate’, 90);

$(‘#image’).cropper(‘rotate’, -90);

  • 1

  • 2

13 . rotateTo(degree)—旋转图像到固定的角度

degree—类型: Number

14 . scale(scaleX[, scaleY])—-翻转图像

scaleX–类型:Number;水平方向翻转;默认为 1

scaleY–类型:Number;垂直方向翻转;如果不存在,其值和scaleX相同;

$(‘#image’).cropper(‘scale’, -1); // 水平、垂直方向翻转

$(‘#image’).cropper(‘scale’, -1, 1); // 水平方向翻转

$(‘#image’).cropper(‘scale’, 1, -1); // 垂直方向翻转

  • 1

  • 2

  • 3

15 . scaleX(scaleX)—-缩放图像的横坐标。

类型:Number;水平方向翻转;默认为 1

16 . scaleY(scaleY)—-缩放图像的纵坐标。

类型:Number;垂直方向翻转;默认为 1

$(‘#image’).cropper(‘scaleX’, 1);

  • 1

17 . getData([rounded])—-输出最终裁剪的区域位置和大小数据(根据原始图像的自然大小

rounded 类型:Boolean 默认:false;设置true可以获取其所有数据;

返回的数据类型:Object

x裁切框距离左边的距离

y裁切框距离顶部的距离

width裁切框的宽度

height裁切框的高度

rotate裁切框的旋转的角度

scaleX缩放图像的横坐标

scaleY缩放图像的纵坐标

这里写图片描述

$(“#getData”).on(“click”, function () {

console.log($(‘#image’).cropper(‘getData’, true));;

})

  • 1

  • 2

  • 3

这里写图片描述

18 . setData(data)—用新数据改变裁切区域的位置和大小(以原始图像为基础)。

data–类型:Object

$(“#setData”).on(“click”, function () {

$(‘#image’).cropper(‘setData’,{width:200,height:100});

})

  • 1

  • 2

  • 3

19 . getContainerData()—输出container 容器大小数据。

返回的数据类型:Object

  • width当前容器的宽
  • height当前容器的高

这里写图片描述

$(“#getContainerData”).on(“click”, function () {

console.log($(‘#image’).cropper(‘getContainerData’, ));;

})

  • 1

  • 2

  • 3

这里写图片描述

20 . getImageData()—-输出图像image位置、大小和其他相关数据。

返回的数据类型:Object

leftimage距离左边的距离

topimage距离顶部的距离

widthimage的宽度

heightimage的高度

naturalWidth image的原始宽度

naturalHeight image的原始高度

aspectRatio image的纵横比

rotateimage的旋转的角度

scaleX缩放图像的横坐标

scaleY缩放图像的纵坐标

$(“#getImageData”).on(“click”, function () {

console.log($(‘#image’).cropper(‘getImageData’, ));;

})

  • 1

  • 2

  • 3

这里写图片描述

21 . getCanvasData()—输出画布Canvas(图像包装器)位置和大小数据。

返回的数据类型:Object

leftcanvas距离左边的距离

topcanvas距离顶部的距离

widthcanvas的宽度

heightcanvas的高度

naturalWidth canvas的原始宽度

naturalHeight canvas的原始高度

这里写图片描述

*注意*getImageData()和getCanvasData()的naturalWidthnaturalHeight的值是一样的;

22 . setCanvasData(data)—:使用数据更改画布Canvas(图像包装器)位置和大小。

返回的数据类型:Object

leftcanvas距离左边的距离

topcanvas距离顶部的距离

widthcanvas的宽度

heightcanvas的高度

$(“#setCanvasData”).on(“click”, function () {

$(‘#image’).cropper(‘setCanvasData’,{width:200,height:100});

})

  • 1

  • 2

  • 3

23 .getCropBoxData()—输出剪切框的位置和大小数据。

返回的数据类型:Object

left剪切框距离左边的距离

top剪切框距离顶部的距离

width剪切框的宽度

height剪切框的高度

$(“#getCropBoxData”).on(“click”, function () {

console.log($(‘#image’).cropper(‘getCropBoxData’));;

})

  • 1

  • 2

  • 3

这里写图片描述

24 . setCropBoxData(data)—–改变剪切框的位置和大小数据。

data的数据类型:Object

left剪切框距离左边的距离

top剪切框距离顶部的距离

width剪切框的宽度

height剪切框的高度

$(“#setCropBoxData”).on(“click”, function () {

$(‘#image’).cropper(‘setCropBoxData’,{width:200,height:100});

})

  • 1

  • 2

  • 3

25 . getCroppedCanvas([options])—画一张剪裁的图片。如果没有剪裁,则返回一个绘制整个im的画布(这个感觉很有用)

options 类型Object

width输出Canvas的宽度

height输出Canvas的高度

minWidth输出Canvas的最小宽度;默认值是0

minHeight输出Canvas的最小高度;默认值是0

maxWidth输出Canvas的最大宽度;默认值是Infinity(无穷大)

maxHeight输出Canvas的最大高度;默认值是Infinity(无穷大)

fillColor在输出画布Canvas中填充任何alpha的颜色,默认值是透明的

imageSmoothingEnabled如果图像被设置为平滑(true,默认)或不设置(false)。

imageSmoothingQuality设置图像的质量,一个“low”(默认)、“medium”或“high”。

返回值:类型:HTMLCanvasElement画布绘制出了剪裁过的图像

_注意:_输出canvas画布的宽高比将自动适应剪切框的纵横比。

如果您打算从输出画布canvas中获得一个JPEG图像,您应该首先设置填色选项,否则,JPEG图像中的透明部分将在缺少情况下变为黑色。

为了避免获得空白的输出图像,您可能需要将maxWidth和maxHeightproperties设置为有限的数字,从而来画布元素的大小限制。

$(“#getCroppedCanvas”).on(“click”, function () {

console.log($(‘#image’).cropper(‘getCroppedCanvas’));;

var cas=$(‘#image’).cropper(‘getCroppedCanvas’);

var base64url=cas.toDataURL(‘image/jpeg’);

cas.toBlob(function (e) {

console.log(e); //生成Blob的图片格式

})

console.log(base64url); //生成base64图片的格式

$(‘.cavans’).html(cas) //在body显示出canvas元素

})

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

这里写图片描述 这里写图片描述

$(‘#image’).cropper(‘getCroppedCanvas’, {

width: 160,

height: 90,

minWidth: 256,

minHeight: 256,

maxWidth: 4096,

maxHeight: 4096,

fillColor: ‘#fff’,

imageSmoothingEnabled: false,

imageSmoothingQuality: ‘high’,

});

// Upload cropped image to server if the browser supports HTMLCanvasElement.toBlob

$(‘#image’).cropper(‘getCroppedCanvas’).toBlob(function (blob) {

var formData = new FormData();

formData.append(‘croppedImage’, blob);

$.ajax(‘/path/to/upload’, {

method: “POST”,

data: formData,

processData: false,

contentType: false,

success: function () {

console.log(‘Upload success’);

},

error: function () {

console.log(‘Upload error’);

}

});

});

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

总结

阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
, {

method: “POST”,

data: formData,

processData: false,

contentType: false,

success: function () {

console.log(‘Upload success’);

},

error: function () {

console.log(‘Upload error’);

}

});

});

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

总结

阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-FZo5v4MN-1713287522031)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值