我是通过此配置从Crop Avatar例子开始为我的应用
this.$img.cropper({
preview: this.$avatarPreview.selector,
viewMode: 2,
dragMode: 'move',
guides: false,
highlight: false,
autoCropArea: 1,
movable: true,
strict: true,
cropBoxResizable: false,
minCropBoxWidth: 1000,
minCropBoxHeight: 1000,
zoom: function (e) {
if (e.ratio > 1) {
e.preventDefault();
$(this).cropper('zoomTo', 1);
}
},
像这样使用它我可以缩放到比率1但是对于较小的图像太多了。例如,1200x1200图像可以按比例1缩放到一个级别,将其保存到1000x1000,它会损失很多质量。
我尝试使用$(this).cropper('zoomTo', 1);
在1以下,但它会产生一种奇怪的效果。如果我放大到它会使我达到原始尺寸。
我的问题是如何阻止缩放到x0.2或合理的值。谢谢
答案 0 :(得分:0)
这个答案来自开发裁剪器的fengyuanchen,我认为适合我对不同设备上不同分辨率的裁剪器的需求
$().cropper({
zoom: function (e) {
var container = $(this).cropper('getContainerData');
// Desktop
if (container.width > 1120) {
// Zoom in
if (e.ratio > e.oldRatio) {
if (e.ratio > 10) {
e.preventDefault();
}
// Zoom out
} else {
if (e.ratio < 0.1) {
e.preventDefault();
}
}
// Laptop
} else if (container.width > 992) {
// ...
// Tablet
} else if (container.width > 768) {
// ...
// Phone
} else {
// ...
}
}
});