首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Cropper获得固定大小的裁剪

如何从Cropper获得固定大小的裁剪
EN

Stack Overflow用户
提问于 2016-11-22 06:53:57
回答 2查看 6.1K关注 0票数 4

我正在使用Cropper尝试从上传的图像中获取固定大小的裁剪。这个想法是,该网站的管理员将能够缩放(如果需要)和框架的新图像在裁剪器中,不能改变。这样,所有被裁剪的图像都是完全相同的大小。

这是有效的,除非用户放大。在这种情况下,生成的图像较小,如果缩小,则图像较大。

我用这个来初始化裁剪器:

代码语言:javascript
复制
$('#image').cropper({
        aspectRatio: 16 / 9,
        cropBoxResizable: false,
        dragMode: 'move',
        built: function () {
            $("#image").cropper('setCropBoxData', { width: 640 });
        },
        cropmove: function () {
            $("#image").cropper('setCropBoxData', { width: 640 });
        }
    });

然后使用下面的代码获取用于上传的dataUrl:

代码语言:javascript
复制
var image = $("#image").cropper("getCroppedCanvas").toDataURL('image/jpeg', 1);

它似乎是通过查看裁剪框所限定的区域来裁剪图像,然后使用原始大小裁剪图像。换句话说,该框只定义了图像的边界区域,然后裁剪器将该区域以原始大小从原始图像中剪切出来。我需要他们的大小定义在裁剪设置。

如果你需要更多,请告诉我。

EN

回答 2

Stack Overflow用户

发布于 2017-03-08 06:44:55

Would设置

zoomable: false,

对你的情况有帮助吗?或者您想保留用户的缩放功能?

票数 1
EN

Stack Overflow用户

发布于 2019-08-10 02:37:26

图像变量$("#image").cropper("getCroppedCanvas").toDataURL('image/jpeg',=

1);

你实际能做的就是更改上面的行,并使用"getCroppedCanvas“为你提供任何你想要的尺寸。所以在JS中的某个地方:

代码语言:javascript
复制
var finalCropWidth = 640;
var finalCropHeight = 480;
var finalAspectRatio = finalCropWidth / finalCropHeight;

...

$('#image').cropper({
                viewMode: 3,
                aspectRatio: finalAspectRatio,
                zoomable: true,
                dragMode: 'move',

});

...

var image = 
$("#image").cropper("getCroppedCanvas", { width: 640, height: 480 }).toDataURL('image/jpeg', 1);

现在用户可以缩放和更改裁剪窗口的大小,一切都是正常的,因为纵横比与最终所需的图像相同。使用getCroppedCanvas的最后一次调用将在裁剪窗口中选择的任何内容缩小或放大到最终所需的图像大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40730887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档