html - 将屏幕外 Canvas 的一部分转移到屏幕上 Canvas 的最快方法

标签 html canvas

我想将屏幕外 Canvas 的 blit 部分(即坐标 x、y 和宽度、高度 w、h)写入屏幕上的 Canvas 。这可以做到吗?最快的方法是什么?

最佳答案

是的,您只需要使用drawImage()putImageData()drawImage() 函数调用可以将 Canvas 作为数据源参数,因此您可以使用屏幕外 Canvas 作为源来绘制到屏幕上的 Canvas 。如果您需要保持透明度,则需要使用 putImageData() 来完全覆盖现有的 Canvas 数据。相反,drawImage() 将使用上下文的 globalCompositeOperation 参数将混合模式应用于数据。

var offscreen_canvas = document.getElementById("offscreen_canvas");
var onscreen_canvas = document.getElementById("onscreen_canvas");
var onscreen_context = onscreen_canvas.getContext("2d");

// Don't care about transparency:
onscreen_context.drawImage(offscreen_canvas, source_x, source_y, source_width, source_height, dest_x, dest_y, dest_width, dest_height);

// Or, if we care about transparency preservation:
var offscreen_context = offscreen_canvas.getContext("2d");
var offscreen_data = offscreen_context.getImageData(x, y, width, height);

onscreen_context.putImageData(offscreen_data, dest_x, dest_y);

引用文献:drawImage()putImageData() .

关于html - 将屏幕外 Canvas 的一部分转移到屏幕上 Canvas 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436299/

相关文章:

html - 如何更好地控制响应图像断点和与 BS3 对齐

delphi - 如何在窗体上绘制透明文字?

javascript - 如何在正确的位置绘制 Canvas 元素?

android - 按钮文本旋转与标签 singleLine 不正确

javascript - 为 Canvas 上的按键添加事件监听器

javascript - 从上下文中获取 Canvas 大小

html - 防止在 iframe 中导航更改父站点历史记录

javascript - 带有 javascript 的多个下拉菜单。不幸的是只有丑陋的 "brute force"意味着

php - 什么时候应该使用不是二进制(1 或 0)值的复选框值?

jquery - 启用单个复选框