Javascript 使用Fabric.js添加图像

Javascript 使用Fabric.js添加图像,javascript,image,fabricjs,Javascript,Image,Fabricjs,我是JavaScript新手,正在使用Fabric.js使用此代码通过单击按钮创建多个图像。我在另一篇文章中找到了下面的代码,它允许使用形状,但我似乎不知道如何成功地制作这些图像 <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script src="fabric.min.js">&l

我是JavaScript新手,正在使用Fabric.js使用此代码通过单击按钮创建多个图像。我在另一篇文章中找到了下面的代码,它允许使用形状,但我似乎不知道如何成功地制作这些图像

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="fabric.min.js"></script>
<script type="text/javascript">
jQuery(function($){
var canvas = new fabric.Canvas('c');

$("#addCircle").click(function(){
       canvas.add(new fabric.Circle({
    radius: 20, fill: 'green', left: 100, top: 100
 }));
  });

});

</script>
</head>
<body>
<div id="wrapper">
<div id="editor">
<input type="button" id="addCircle" value="Add Circle"></div>
<canvas id="c" width="300" height="300"></canvas>
</div>

</body>
</html>

jQuery(函数($){
var canvas=newfabric.canvas('c');
$(“#添加圆”)。单击(函数(){
画布。添加(新织物。圆圈)({
半径:20,填充:“绿色”,左侧:100,顶部:100
}));
});
});

您可以轻松地在url上添加任何已上载的图像,如下所示:

这是js代码段:

var canvas = new fabric.Canvas('c');

canvas.backgroundColor = 'yellow';
canvas.renderAll();
var myImg = 'http://www.logowik.com/uploads/images/511_android.jpg';


$('#addImage').on('click',addImg);

function addImg(){
    fabric.Image.fromURL(myImg, function(oImg) {
        var l = Math.random() * (500 - 0) + 0;
        var t = Math.random() * (500 - 0) + 0;                
            oImg.scale(0.2);
        oImg.set({'left':l});
                  oImg.set({'top':t});
            canvas.add(oImg);
        });
}
在这里,您可以在JSFIDLE上找到一个实时示例: 按下按钮并在随机位置导入图像


希望有帮助,祝你好运。

这是如何使用HTML5文件API从本地计算机读取图像并在fabric.js画布中渲染的:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-2.1.4.js"></script>
<script src="Scripts/fabric.min.js"></script>
<script type="text/javascript"> 

    var myAppModule = (function () {
        var outObj = {};

        var file, fileReader, img;
        var cCanvas, cImg;

        var init = function (newFile, newFileReader) {
            file = newFile;
            fileReader = newFileReader;
        };

        var onloadImage = function () {
            cCanvas = new fabric.Canvas('myCanvas');
            cCanvas.setWidth(img.width);
            cCanvas.setHeight(img.height);

            cImg = new fabric.Image(img, {
                left: 0,
                top: 0,
                angle: 0
            });

            cCanvas.add(cImg);
        };

        var onloadFile = function (e) {
            img = new Image();
            img.onload = onloadImage;
            img.src = fileReader.result;
        };

        outObj.init = init;
        outObj.OnloadFile = onloadFile;

        return outObj;
    })();

    function handleFileSelect(evt) {
        var files = evt.target.files;
        var output = [];
        for (var i = 0, f; f = files[i]; i++) {

            if (!f.type.match('image.*')) {
                continue;
            }

            var reader = new FileReader();

            myAppModule.init(f, reader);

            reader.onload = myAppModule.OnloadFile;

            reader.readAsDataURL(f);

        }
    }

    $(document).ready(function () {
        document.getElementById('selectFile').addEventListener('change', handleFileSelect, false);

    });
</script>
</head>
<body>
<canvas id="myCanvas">

</canvas>

<form id="form1">

    <input type="file" id="selectFile" name="selectFile"/>

</form>
</body>
</html>

var myAppModule=(函数(){
var outObj={};
var文件、fileReader、img;
var cCanvas,cImg;
var init=函数(newFile,newFileReader){
file=newFile;
fileReader=newFileReader;
};
var onloadImage=函数(){
cCanvas=newfabric.Canvas('myCanvas');
cCanvas.设置宽度(img.宽度);
cCanvas.设置高度(img.高度);
cImg=新结构。图像(img{
左:0,,
排名:0,
角度:0
});
cCanvas.add(cImg);
};
var onloadFile=函数(e){
img=新图像();
img.onload=onload图像;
img.src=fileReader.result;
};
outObj.init=init;
outObj.onload文件=onload文件;
返回outObj;
})();
功能手柄文件选择(evt){
var files=evt.target.files;
var输出=[];
for(var i=0,f;f=files[i];i++){
如果(!f.type.match('image.*')){
继续;
}
var reader=new FileReader();
init(f,reader);
reader.onload=myAppModule.onload文件;
reader.readAsDataURL(f);
}
}
$(文档).ready(函数(){
document.getElementById('selectFile')。addEventListener('change',handleFileSelect,false);
});

他们的网站上有一个使用图像的教程: