fabric js-根据画布中添加的矩形调整完整画布的大小,以实现裁剪

乌拉尼亚(Saurabh Udaniya)

我正在使用Fabric js生成模板,我希望用户设置我正在使用以下代码的画布的高度和宽度

canvas.setHeight(height);
canvas.setWidth(width);

但是,这样做时,全宽画布会自行拉伸,并且对象会从调整大小后的画布中消失,因为之前说的是500像素宽,用户将其调整为100像素,然后项目消失了。

我想要实现一项功能,以便如果用户想要更改画布的大小,那么我将显示一个矩形,而不是调整画布的大小,而是可以相应地移动矩形以获取可见区域,并且一旦用户单击“保存”,我便会调整大小根据该矩形绘制画布,以便稍后可以处理SVG进行进一步的转换,但是通过这样做,我不确定如何将矩形中的可见区域获取到调整后的画布上,简而言之,我想要使用Darkroom js之类的功能,但对于织物js画布对象。

当前功能已添加到该JS小提琴中http://jsfiddle.net/tbqrn/102/

乌拉尼亚(Saurabh Udaniya)

最后,在进行了一些研究之后,我能够做到这一点,而不是调整画布的大小,而是添加一个带有“ cropper”类型的矩形对象,如下所述

var rect = new fabric.Rect({
                    left: 100,
                    top: 100,
                    fill: 'transparent',
                    width: 400,
                    height: 400,
                    strokeDashArray: [5, 5],
                    stroke: 'black',
                    type: 'cropper',
                    lockScalingX: true,
                    lockScalingY: true,
                    lockRotation: true
                });
                canvas.add(rect);

此矩形将用作裁剪器,当用户提交表单时,我将获得裁剪器的尺寸,以及更改画布大小

            var i;
            var croppedLeft = 0;
            var croppedTop = 0;
            var canvasJson = canvas.getObjects();
            // Cropping canvas according to cropper rectangle
            if (canvas.getObjects().length > 0) {
                var i;
                for (i = 0; i < canvas.getObjects().length; i++) {
                    if (canvas.getObjects()[i].type == 'cropper') {
                        croppedLeft = canvas.getObjects()[i].left;
                        croppedTop = canvas.getObjects()[i].top;
                        canvas.setHeight(canvas.getObjects()[i].height);
                        canvas.setWidth(canvas.getObjects()[i].width);
                        canvas.getObjects()[i].remove();
                    }
                }
            }

之后,我将相应地移动所有其他画布对象,如下所示。

for (i = 0; i < canvasJson.length; i++) {
                canvas.getObjects()[i].left = canvas.getObjects()[i].left - croppedLeft
                canvas.getObjects()[i].top = canvas.getObjects()[i].top - croppedTop
                canvas.renderAll();
            }

这样做之后,我能够实现所需的功能,希望这对某人有所帮助。

这是我的小提琴http://jsfiddle.net/tbqrn/115/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用fabric.js在URL中向HTML画布添加图像并调整其大小?

来自分类Dev

调整画布的背景图像大小-Fabric.js

来自分类Dev

fabric.js调整画布大小以适合屏幕

来自分类Dev

画布旋转 - Fabric js

来自分类Dev

在Fabric.js中全屏显示画布

来自分类Dev

在Fabric.js中调整对象大小

来自分类Dev

如何使用Fabric.js实现画布平移

来自分类Dev

Fabric JS中的BringForward

来自分类Dev

无法在画布上添加新对象(fabric.js)

来自分类Dev

Fabric.js画布图像抗锯齿

来自分类Dev

缩放fabric.js画布对象

来自分类Dev

Fabric.js画布混合模式

来自分类Dev

保存用fabric.js创建的画布

来自分类Dev

使用fabric.js的全屏画布模式

来自分类Dev

Fabric.js画布上的GIF动画

来自分类Dev

如何在Fabric.js中动态缩放对象以达到画布大小

来自分类Dev

iPad和iPhone中的Fabric.js画布闪烁

来自分类Dev

如何使用按钮从Fabric.js画布中删除图像

来自分类Dev

Fabric.js-淡出对象并从画布中删除

来自分类Dev

Fabric.js中彼此重叠的两个画布

来自分类Dev

iPad和iPhone中的Fabric.js画布闪烁

来自分类Dev

如何使用按钮从Fabric.js画布中删除图像

来自分类Dev

在fabric js中调整大小后如何更新矩形的宽度和高度?

来自分类Dev

在画布HTML5和Fabric js中的图像上添加删除图标

来自分类Dev

如何在Fabric JS中的画布的一个角添加删除图标功能?

来自分类Dev

在将对象添加到Fabric.js中的画布时设置对象的位置

来自分类Dev

Fabric-js模式:如何根据矩形(不缩放)从矩形创建画布背景的图案,具体取决于缩放和模糊矩形

来自分类Dev

无法在画布的裁剪区域之外查看选择器控件(fabric.js)

来自分类Dev

无法在画布的裁剪区域之外查看选择器控件(fabric.js)

Related 相关文章

  1. 1

    如何使用fabric.js在URL中向HTML画布添加图像并调整其大小?

  2. 2

    调整画布的背景图像大小-Fabric.js

  3. 3

    fabric.js调整画布大小以适合屏幕

  4. 4

    画布旋转 - Fabric js

  5. 5

    在Fabric.js中全屏显示画布

  6. 6

    在Fabric.js中调整对象大小

  7. 7

    如何使用Fabric.js实现画布平移

  8. 8

    Fabric JS中的BringForward

  9. 9

    无法在画布上添加新对象(fabric.js)

  10. 10

    Fabric.js画布图像抗锯齿

  11. 11

    缩放fabric.js画布对象

  12. 12

    Fabric.js画布混合模式

  13. 13

    保存用fabric.js创建的画布

  14. 14

    使用fabric.js的全屏画布模式

  15. 15

    Fabric.js画布上的GIF动画

  16. 16

    如何在Fabric.js中动态缩放对象以达到画布大小

  17. 17

    iPad和iPhone中的Fabric.js画布闪烁

  18. 18

    如何使用按钮从Fabric.js画布中删除图像

  19. 19

    Fabric.js-淡出对象并从画布中删除

  20. 20

    Fabric.js中彼此重叠的两个画布

  21. 21

    iPad和iPhone中的Fabric.js画布闪烁

  22. 22

    如何使用按钮从Fabric.js画布中删除图像

  23. 23

    在fabric js中调整大小后如何更新矩形的宽度和高度?

  24. 24

    在画布HTML5和Fabric js中的图像上添加删除图标

  25. 25

    如何在Fabric JS中的画布的一个角添加删除图标功能?

  26. 26

    在将对象添加到Fabric.js中的画布时设置对象的位置

  27. 27

    Fabric-js模式:如何根据矩形(不缩放)从矩形创建画布背景的图案,具体取决于缩放和模糊矩形

  28. 28

    无法在画布的裁剪区域之外查看选择器控件(fabric.js)

  29. 29

    无法在画布的裁剪区域之外查看选择器控件(fabric.js)

热门标签

归档