gpt4 book ai didi

javascript - 在 Canvas 上绘制 Div 的背景图片

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:18 24 4
gpt4 key购买 nike

我有一个 sprite 图像,用于在 div 上显示图标。我有类名来标识 Sprite 中的每个图标。

现在我想要的是,我有一个显示特定图标的 div,我想在 Canvas 上绘制相同的图标.. I.E. div 的背景图像应该呈现在 Canvas 上。

我能做的另一件事是。我可以使用图像元素并提供 sprite 图像 url 并在 Canvas 上绘制图像。

但是由于一些问题。我不能使用这个选项。

谁能帮我在 Canvas 上渲染 div 的背景。可用于呈现的值是该特定图标的 css 类名称。它在 Sprite 中的位置。及其大小。

最佳答案

enter image description here

方法如下:

  • 获取 div 背景图片的 URI,
  • 从该 URI 创建图像,
  • 将该图像绘制到 Canvas 上。

注意:浏览器可能已经缓存了背景图像,因此您可能不会往返于服务器以重新获取图像。

示例代码和演示:

var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;

// get the dataURL of your div's background
var bg = $('#myDiv').css('background-image');
bg = bg.replace('url(','').replace(')','').replace('"','').replace('"','');

// build an image from the dataURL
var img=new Image();
//img.crossOrigin='anonymous';
img.onload=function(){
// draw the image onto the canvas
ctx.drawImage(img,0,0);
}
img.src=bg;
body{ background-color: ivory; padding:10px; }
#myDiv{width:75px;height:75px;background-image:url(https://dl.dropboxusercontent.com/u/139992952/multple/sun.png);}
#canvas{border:1px solid red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id='myDiv'>Sprite div with background image</div>
<canvas id="canvas" width=100 height=100></canvas>

关于javascript - 在 Canvas 上绘制 Div 的背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com