0

I was trying to implement like similar website.

http://printio.ru/full_print_tees/new

Even i tried answer of following post but it is not working.Does any one have the solution or fiddle. Fabric.js Clip Canvas (or object group) To Polygon

I have create following example but it is not working similar. Please let me know what is problem

<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="fabric.min.js"></script>

<style>
    body{ background-color: ivory; }
    canvas{border: 1px solid red; }
</style>

<script>
    $(function(){

        var canvas = new fabric.Canvas('canvas');
        var group = [];

        fabric.loadSVGFromURL("http://fabricjs.com/assets/2.svg",function(objects,options) {

            var loadedObjects = new fabric.Group(group);

            loadedObjects.set({
                    left: 100,
                    top: 100

            });

            canvas.add(loadedObjects);
            shape = canvas.item(0);
            canvas.remove(shape);
            canvas.clipTo = function(ctx) {
              shape.render(ctx);
            };
            canvas.renderAll();

        },function(item, object) {
                object.set('id',item.getAttribute('id'));
                group.push(object);
        });



          }); // end $(function(){});
</script>

</head>

<body>
    <canvas id="canvas" width="300" height="300"></canvas> 
</body>
</html>
Community
  • 1
  • 1
Bhupendra Jadeja
  • 288
  • 1
  • 6
  • 17

1 Answers1

2

Hello are you looking something like this on my example?

  1. load one image (t-shirt)
  2. add i-text object
  3. manipulate text object (edit,move up/down/left/right) on the t-shirt

small snippet:

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);
console.log(canvas._objects[0]._objects[1].text);
});

live example : https://jsfiddle.net/tornado1979/zrazuhcq/

enter image description here

Hope helps,good luck.

Theo Itzaris
  • 4,321
  • 3
  • 37
  • 68