在 Angular.js 上的 HTML5 Canvas 中的背景图像上绘制一个矩形

Posted

技术标签:

【中文标题】在 Angular.js 上的 HTML5 Canvas 中的背景图像上绘制一个矩形【英文标题】:Draw a rectangle over a background image in HTML5 Canvas on Angular.js 【发布时间】:2019-11-03 03:40:41 【问题描述】:

我想使用 angular.js 在画布上的背景图像上绘制一个矩形。我可以通过将矩形代码放在 image.onload 函数中来绘制它。但是我希望它们分开。我该怎么做?

$scope.printStars = function() 
                var c = document.getElementById("myCanvas");
                c.width=1920;
                c.height=1080;

                var ctx = c.getContext("2d");
                ctx.clearRect(0, 0, 800, 800);


                ctx.scale(c.width/1920,c.height/1080);
                ctx.translate(1920-500,0);
                 var imagePaper = new Image();


               imagePaper.onload = function()


                    ctx.drawImage(imagePaper,100, 20, 500,500);



                ;
                ctx.fillRect(20, 20, 200, 200);

                imagePaper.src = "Img/Back1.jpg";





            

如果我这样做,我的代码就可以工作

 imagePaper.onload = function()


                    ctx.drawImage(imagePaper,100, 20, 500,500);
                    ctx.fillRect(20, 20, 200, 200);


                ;

但我想要图像函数之外的 drawrectangle 代码。

【问题讨论】:

【参考方案1】:

您现在可以将ctx 分配给$scope 上的变量,然后在其他地方访问它。例如:

$scope.drawRectangle = function() 
  $scope.ctx.fillRect(20, 20, 200, 200);

<button ng-click=drawRectangle()>Draw rectangle</button>

【讨论】:

但我不希望任何按钮调用该函数。不使用按钮可以做到吗? 是的,按钮只是一个插图。只要你把它赋值给$scope,你就可以从任何地方在画布上画画

以上是关于在 Angular.js 上的 HTML5 Canvas 中的背景图像上绘制一个矩形的主要内容,如果未能解决你的问题,请参考以下文章

Angular.js 和 HTML5 日期输入值——如何让 Firefox 在日期输入中显示可读的日期值?

angular.js html5mode页面刷新问题[重复]

在页面刷新时使用 Angular JS ui.router html5Mode(true) 配置 Amazon S3 静态站点

可以在 Github 上托管基于 angular.js 的静态博客吗?

css 中的 url 被 angular 重写

Angular js 简介