如何在fabric.js中使用画布保存图像

布彭德拉(Bhupendra)翡翠

我正在创建一个用于T恤定制的应用程序,在该应用程序中,我已使用CSS将画布放在图像上,但是问题是将该图像另存为画布。toDataURL只是给出了画布区域的一部分,但是我想要整个图像。关于堆栈溢出还有其他解决方案,但它们不能解决此问题。

在此处输入图片说明

根据伊扎里斯的说法

在此处输入图片说明 您好,您必须使用包含消息的文本对象创建图像对象(t恤)。

  1. 为此,请使用fabric.Image.fromURL()函数并在函数内部加载图像,并创建一个文本对象,该文本对象将显示T恤消息。因此,您的图像和文本属于一个组对象。
  2. 每次要加载新文本时,都调用loadText函数并更改文本对象。
  3. 我还添加了4个按钮以操纵上/下/左/右文本。
  4. 你可以在画布+图像+文字导出到功能saveImg() 但对的jsfiddle你会得到一个安全消息Tained画布发生这种情况是因为在示例中,我从另一个域加载了图像,并且代码在另一个域上运行,因此您可以在Web应用程序上运行该代码而没有任何问题。

  5. 那是代码:

     var canvas = new fabric.Canvas('c');
     var scaleFactor=0.4
    
     canvas.backgroundColor = 'yellow';
     canvas.renderAll();
     var myImg = 'http://izy.urweb.eu/files/tshirt.jpg';
    
    
    
     fabric.Image.fromURL(myImg, function(myImg) {
    var img1 = myImg.scale(scaleFactor).set({ left: 0, top: 0 });
    
    var text = new fabric.Text('the_text_sample\nand more', {
                fontFamily: 'Arial',
                fontSize:20,
            });
    
    text.set("top",myImg.height*scaleFactor-myImg.height*scaleFactor+150);
    text.set("left",myImg.width*scaleFactor/2-text.width/2);
    
    var group = new fabric.Group([ img1,text ], { left: 10, top: 10 });
    canvas.add(group);    
    });
    
    
    $('#loadText').on('click',loadText);
    $('#saveImg').on('click',saveImg);
    
    function loadText(){
      console.log($('#logo').val());
       canvas._objects[0]._objects[1].text = $('#logo').val();
       canvas.renderAll();
    }
    
    
    function saveImg(){    
    console.log('export image');
     if (!fabric.Canvas.supports('toDataURL')) {
      alert('This browser doesn\'t provide means to serialize canvas to an image');
    }
    else {
      window.open(canvas.toDataURL('png'));
    }
    }
    
    $('#left').on('click',function(){
    canvas._objects[0]._objects[1].set('left',canvas._objects[0]._objects[1].left-1);
    canvas.renderAll();
    })
    
    $('#right').on('click',function(){
    canvas._objects[0]._objects[1].set('left',canvas._objects[0]._objects[1].left+1);
    canvas.renderAll();
    })
    
    
    $('#top').on('click',function(){
    canvas._objects[0]._objects[1].set('top',canvas._objects[0]._objects[1].top-1);
    canvas.renderAll();
    })
    
    $('#bottom').on('click',function(){
    canvas._objects[0]._objects[1].set('top',canvas._objects[0]._objects[1].top+1);
    canvas.renderAll();
    })
    
  6. 这是jsfiddle示例:http : //jsfiddle.net/tornado1979/zrazuhcq/1/

希望有帮助,祝你好运。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何在Angular 8中修改画布上fabric.js背景图像的图像选项

来自分类Dev

如何在Gatsby中使用Fabric?

来自分类Dev

如何在Fabric Js中使用Selenium IDE

来自分类Dev

如何在Fabric JS中设置画布的重复背景图像?

来自分类Dev

在fabric js中将画布保存在json中时,使用图像路径而不是base64图像数据URI

来自分类Dev

如何在画布上更改SVG颜色-Fabric.js

来自分类Dev

Fabric.js-如何在鼠标移动时检测画布?

来自分类Dev

如何在Fabric js的组中添加图像

来自分类Dev

如何在Fabric js中的组中添加图像

来自分类Dev

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

来自分类Dev

如何在画布内的Fabric JS图像上添加文本框弹出窗口(jQuery工具提示或类似内容)?

来自分类Dev

单击Fabric.js画布时如何获取图像的src?

来自分类Dev

如何在Android中使用画布在其他图像中添加图像?

来自分类Dev

如何在bash / Python / Fabric / sh脚本中使用pew?

来自分类Dev

如何在bash / Python / Fabric / sh脚本中使用pew?

来自分类Dev

如何在 Azure Service Fabric 中使用 MSMQ

来自分类Dev

如何在MVC 4中使用图像保存模型

来自分类Dev

Hyperledger Fabric:如何在JS / Node中使用链码捕获事务错误?

来自分类Dev

Kivy,如何在画布中使用数据

来自分类Dev

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

来自分类Dev

如何在fabric.js的画布上触发自定义事件?

来自分类Dev

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

来自分类Dev

我如何在我的fabric.js画布中引入基于键的事件?

来自分类Dev

如何在Mozzila上获取fabric.js画布鼠标坐标

来自分类Dev

Fabric.js画布图像抗锯齿

来自分类Dev

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

来自分类Dev

如何在Fabric.js中绘制弧

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

    如何在Angular 8中修改画布上fabric.js背景图像的图像选项

  4. 4

    如何在Gatsby中使用Fabric?

  5. 5

    如何在Fabric Js中使用Selenium IDE

  6. 6

    如何在Fabric JS中设置画布的重复背景图像?

  7. 7

    在fabric js中将画布保存在json中时,使用图像路径而不是base64图像数据URI

  8. 8

    如何在画布上更改SVG颜色-Fabric.js

  9. 9

    Fabric.js-如何在鼠标移动时检测画布?

  10. 10

    如何在Fabric js的组中添加图像

  11. 11

    如何在Fabric js中的组中添加图像

  12. 12

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

  13. 13

    如何在画布内的Fabric JS图像上添加文本框弹出窗口(jQuery工具提示或类似内容)?

  14. 14

    单击Fabric.js画布时如何获取图像的src?

  15. 15

    如何在Android中使用画布在其他图像中添加图像?

  16. 16

    如何在bash / Python / Fabric / sh脚本中使用pew?

  17. 17

    如何在bash / Python / Fabric / sh脚本中使用pew?

  18. 18

    如何在 Azure Service Fabric 中使用 MSMQ

  19. 19

    如何在MVC 4中使用图像保存模型

  20. 20

    Hyperledger Fabric:如何在JS / Node中使用链码捕获事务错误?

  21. 21

    Kivy,如何在画布中使用数据

  22. 22

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

  23. 23

    如何在fabric.js的画布上触发自定义事件?

  24. 24

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

  25. 25

    我如何在我的fabric.js画布中引入基于键的事件?

  26. 26

    如何在Mozzila上获取fabric.js画布鼠标坐标

  27. 27

    Fabric.js画布图像抗锯齿

  28. 28

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

  29. 29

    如何在Fabric.js中绘制弧

热门标签

归档