javascript - 在javascript中翻转html5画布的一部分
问题描述
我有一个已绘制的 html5 画布元素。我现在需要水平翻转这个画布的一个矩形部分。
我尝试将选定区域复制到临时画布。我现在需要代码来翻转这个临时画布,然后将其复制回主画布。这是我的代码:
function swapRow(row) {
var tempCanvas = document.createElement('canvas');
tempCanvas.id = "tempCanvas";
tempCanvas.width = 384;
tempCanvas.height = 32;
var tempContext = tempCanvas.getContext('2d');
var tempImage = context.getImageData(0, 0, 384, 32);
tempContext.putImageData(tempImage, 0, 0);
//need code to flip tempContext
tempImage = tempContext.getImageData(0, 0, 384, 32);
context.putImageData(tempImage, 0, 0);
}
row 参数将用于决定要翻转哪个矩形区域,为了清楚起见,我省略了这个逻辑。
解决方案
我已经设法解决了这个问题。
我试图翻转我的临时画布,但我需要做的是从临时画布中获取图像,设置我的缩放选项并将图像粘贴回临时画布。我使用 toDataURL 从画布中获取图像。
function swapRow(row) {
var tempCanvas = document.createElement('canvas');
tempCanvas.id = "tempCanvas";
tempCanvas.width = 384;
tempCanvas.height = 384 / width;
var tempContext = tempCanvas.getContext('2d');
var tempImage = context.getImageData(30, 30 + (row * tempCanvas.height), 384, tempCanvas.height);
tempContext.putImageData(tempImage, 0, 0);
var myImage = new Image();
myImage.src = tempCanvas.toDataURL("image/png");
tempContext.scale(-1, 1);
tempContext.drawImage(myImage, -383, 0, 384, tempCanvas.height);
tempImage = tempContext.getImageData(0, 0, 384, tempCanvas.height);
context.putImageData(tempImage, 30, 30 + (row * tempCanvas.height));
}
推荐阅读
- python - 将字符串转换为 2D-numpy 数组中的浮点数
- wordpress - 在 Wordpress 中编辑 functions.php 文件;网站坏了
- django - 模型对象的字符串表示的许多数据库查询
- python - 如何让机器学习算法更快
- regex - 在 REGEX 中使用类内容
- javascript - Socket.emit() 和/或 socket.on() 不工作
- amazon-s3 - 因 S3 重定向而中断的站内链接
- java - 如何延迟 Java 代码直到另一部分代码完成?
- python - 在最后一个元音之后查找单词
- php - 在php中爆炸发布的数据以接收Date