Javascript 使用Paper.js调整光栅背景图像的大小

Javascript 使用Paper.js调整光栅背景图像的大小,javascript,jquery,html,image,html5-canvas,Javascript,Jquery,Html,Image,Html5 Canvas,我正在尝试将背景图像添加到画布元素中,并在HTML的底部添加一个脚本标记 此代码的输出是较大图像的一个小版本,就像单个平铺一样。在inspector中,画布已被处理,因此无法使用css控制图像大小 下面是javascript: window.onload = function() { // plain image coming server side var crag_image = $('#last-upload').attr('src');

我正在尝试将背景图像添加到画布元素中,并在HTML的底部添加一个脚本标记

此代码的输出是较大图像的一个小版本,就像单个平铺一样。在inspector中,画布已被处理,因此无法使用css控制图像大小

下面是javascript:

    window.onload = function() {
        // plain image coming server side 
        var crag_image = $('#last-upload').attr('src');
        var canvas = document.getElementById('myCanvas');
        paper.setup(canvas);

        // Let's get layers working
        var img = document.createElement('img');
        img.src =  crag_image;
        img.id = "background-crag";
        var layer = new paper.Layer();
        var raster = new paper.Raster(img);

        // End Layers

        var secondLayer = new paper.Layer();
        secondLayer.activate();

        var myPath = new paper.Path();
        myPath.strokeColor = 'red';
        myPath.strokeWidth = 2.5;


        // Draw the view:
        paper.view.draw();

        var tool = new paper.Tool();

        tool.onMouseDown = function(event) {
            myPath.add(event.point);
        }

        tool.onMouseDrag = function(event) {
          myPath.add(event.point);
          // Update the content of the text item to show how many
          textItem.content = 'Segment count: ' + myPath.segments.length;
        }

        // When the mouse is released, simplify the path:
        function onMouseUp(event) {
          var segmentCount = path.segments.length;
          myPath.simplify(10);
          myPath.fullySelected = true;
          var newSegmentCount = myPath.segments.length;
          var difference = segmentCount - newSegmentCount;
          var percentage = 100 - Math.round(newSegmentCount / segmentCount * 100);
        }
   }
更新:

var raster = new paper.Raster(img); //works
如果我尝试根据引用展开构造函数,那么它在视图是什么的问题上失败

var raster = new paper.Raster({
  source: img.src,
  position: view.center
});

“文档”或“我的代码”中的名称范围已关闭,这解决了问题

var raster = new paper.Raster({
  source: img.src,
  position: paper.view.center
});

你在这里干什么

img.src =  crag_image;
正在加载图像,然后再次在光栅中加载相同的图像。光栅位于同一图像的顶部,因此您无法理解其差异

var raster = new paper.Raster({
  source: img.src, // loading the image again ?
  position: paper.view.center
});
相反,你要做的是替换这个

var img = document.createElement('img');
        img.src =  crag_image;
        img.id = "background-crag";
        var layer = new paper.Layer();
        var raster = new paper.Raster(img);

var raster = new paper.Raster({
  source: crag_image, //notice here
  position: paper.view.center
});