我找到了this CanvasRenderingContext2D,我玩了一下它。我能够使用此上下文缩放和旋转我的图像:CanvasRenderingContext2D翻转转换
crop: function() {
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
canvas.width = this.options.width/this.scale;
canvas.height = this.options.height/this.scale;
var currWidth = this.imgWidth * this.scale;
var currHeight = this.imgHeight * this.scale;
var correctX = (currWidth - this.imgWidth)/2;
var correctY = (currHeight - this.imgHeight)/2;
var sourceX = (this.posX - correctX)/this.scale;
var sourceY = (this.posY - correctY)/this.scale;
context.translate(sourceX, sourceY);
context.translate(this.imgWidth/2, this.imgHeight/2);
context.rotate(this.rotate * Math.PI/180);
context.drawImage(this.imgFull, this.imgWidth/2 * -1, this.imgHeight/2 * -1);
this.options.modal.remove();
this.promise.resolve(canvas);
},
不幸的是,我找不到任何垂直或水平翻转画布的功能。在代码中,我认为我可以这样做:
if(self.flipV) {
context.rotateY(180);
}
if(self.flipH) {
context.rotateX(180);
}
但我找不到任何方法在y轴或x轴上旋转。 有什么方法可以在这里执行我的翻转转换?
虽然不是很明显,你可以翻转使用'context.scale'方法。用'context.scale(-1,1)'水平翻转并用'context.scale(1,-1)'垂直翻转。就像旋转一样,您必须在执行context.scale之前使用'context.translate'设置旋转点。 :-) – markE
哇。这是我的情况的完美解决方案。谢谢。你不想从你的评论中得出答案吗? – Mulgard