【发布时间】:2014-02-05 06:15:22
【问题描述】:
这是我如何在画布上绘制图像的基本实现。
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var imageObj = new Image();
function drawImg(x, y) {
imageObj.onload = function() {
context.drawImage(imageObj, x, y);
};
imageObj.src = 'http://www.mysite.com/temp.jpg';
}
我有一个服务器端图像渲染脚本,我正在将图像写入相同的文件位置,例如:“temp.jpg”。当图像更改时,我正在使用 Ajax 提示浏览器,然后我运行该函数以再次加载图像。但是,似乎由于 URL 始终相同,所以加载的第一张图像被缓存并且永远不会重绘。
我找到了几种解决方案,但我不确定哪种方案最有效或真正的最佳解决方案。一些建议包括稍微操纵带有时间戳的 URL,并且我已经看到了一些对流媒体的引用。
一些关键点:
- 我不想清除画布,我希望最近的图像位于前一个图像之上,以防 x,y 坐标发生变化或图像大小不同,它应该分层。
- 我真的不想为每个新图像更改图像文件名,这似乎有点过头了。
谢谢。
编辑:
决定将我的 github 项目包含在我正在开发的 socket.io 版本中。我正在制作大约 5 个不同的版本,但这是我主要跟踪的版本。随意撕开它我确信在内存管理方面我有一些不好的做法。 https://github.com/Pwn9/tcp-io-bridge
【问题讨论】:
标签: javascript html image canvas