gpt4 book ai didi

javascript - 如何在javascript中将 Canvas 内的图像居中?

转载 作者:行者123 更新时间:2023-11-28 03:22:38 25 4
gpt4 key购买 nike

我在将 Canvas 内的图像居中时遇到问题。 Canvas 必须是全尺寸的。整个事情应该创建一个网络预加载器。在这种情况下,CSS 中的样式图像不起作用。

<style> canvas{
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #000000;
z-index: 99; }

</style> <body>
<canvas id="c"><img id="logo" width="800" height="150" src="imgsource" alt="logo"></canvas> <div> web content </div>

<script>

jQuery(window).on('load', function() {
jQuery('#c').delay(7000).fadeOut('slow');
jQuery('body').delay(7000).css({'overflow':'visible'});
})


window.onload = function() {
var c = document.getElementById("c");
var ctx = c.getContext("2d");
var img = document.getElementById("logo");
ctx.drawImage(img, 50, 0);


} </script>

最佳答案

以下仅演示使用 drawImg 将图像在 Canvas 内居中.请注意,左侧的图像来自 html <img>元素而另一个来自 drawImg打电话。

在 stackoverflow 之外,您必须在绘制之前等待图像加载,但因为您也已经使用了 .on('load', ...)我想您已经意识到这一点。

为避免有两个图像,创建 image element在 javascript 中,不要将其添加到文档中,而仅将其用于呈现。

let canvas = document.getElementById("canvas");
let ctx = canvas.getContext("2d");
let img = document.getElementById("i");

//just to make the area the canvas occupies visible
ctx.fillStyle = 'grey';
ctx.fillRect(0, 0, canvas.width, canvas.height);

//draw the image centered
ctx.drawImage(
img,
canvas.width / 2 - img.width / 2,
canvas.height / 2 - img.height / 2
);
<html>
<body>
<img id="i" src="http://i.imgur.com/kdJicdy.png"/>
<canvas id="canvas" width="320" height="240">Your browser doesn't support canvas</canvas>
</body>
</html>

关于javascript - 如何在javascript中将 Canvas 内的图像居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45133663/

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