在 HTML5 画布上旋转图像

发布于 2024-11-02 18:04:26 字数 349 浏览 0 评论 0原文

我想在 HTML5 画布上旋转图像,如下所示: http://webutils.co.uk /code/awc-image-rotater

有谁知道我该怎么做?

我一直在尝试这样:

ctx3.drawImage(img3, -235, -142, 128, 128);  
ctx3.translate(151, 142);
ctx3.rotate(90 * Math.PI / 180);

但确实没有达到我的要求。任何帮助将不胜感激。

I want to rotate an image on HTML5 canvas like this: http://webutils.co.uk/code/awc-image-rotater

Does anyone have an idea how I can do this?

I have been trying like this:

ctx3.drawImage(img3, -235, -142, 128, 128);  
ctx3.translate(151, 142);
ctx3.rotate(90 * Math.PI / 180);

But really not fulfilling my requirement. Any help will deeply appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哭了丶谁疼 2024-11-09 18:04:26

您需要在绘制图像之前进行平移和旋转。您将上下文设置为其旋转和平移位置,然后在该平移和平移状态下进行绘图。

您可以在链接到的示例中看到:

this._rotate_canvas( deg, [Tx, Ty] );
this._context.drawImage( this._img_copy, this._overflow_x, this._overflow_y, this._image_width, this._image_height );

_rotate_canvas: function( deg, aPoint )
{
    this._context.translate( aPoint[0], aPoint[1] );
    this._context.rotate( this.deg2rad(deg) );
    this._context.translate( -aPoint[0], -aPoint[1] );
}

You need to do the translation and rotation before you draw the image. You set the context to its rotated and translated position, then you do the drawing in that translated and rotated state.

You can see in the example that you linked to:

this._rotate_canvas( deg, [Tx, Ty] );
this._context.drawImage( this._img_copy, this._overflow_x, this._overflow_y, this._image_width, this._image_height );

_rotate_canvas: function( deg, aPoint )
{
    this._context.translate( aPoint[0], aPoint[1] );
    this._context.rotate( this.deg2rad(deg) );
    this._context.translate( -aPoint[0], -aPoint[1] );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文