【问题标题】:on scaling canvas, toDataURL only returns visible part of canvas, not the part out of canvas size在缩放画布时,toDataURL 仅返回画布的可见部分,而不是超出画布大小的部分
【发布时间】:2019-02-02 22:49:14
【问题描述】:

我正在尝试在画布内的图像上徒手绘制,以及放大/缩小。

要在图像上添加绘图更改,我正在使用 getImageData()putImageData() 然后保存图像使用 canvas.nativeElement.toDataURL();

没有缩放也可以正常工作,但是当我使用 context.scale(x,x); 放大时 canvas.nativeElement.toDataURL(); 只保存画布区域可见的图像,缩放后超出画布大小的图像部分丢失。

我想获得带有绘图更改的完整图像,当缩小时,toDataURL() 有什么替代方法可以给我完整的图像数据。

【问题讨论】:

  • 我以前没有做过类似的事情,但是当你保存它时重置缩放,保存,然后将缩放恢复到保存之前的状态?
  • 您可以在屏幕画布上绘制图像,也可以在缓冲区画布(不附加到 DOM)上绘制图像,缓冲区画布可能与缩放后的图像一样大,您可以使用 `toDataURL() ` 在缓冲区画布上。
  • @enxaneta 我试过你的方法,它奏效了。您可以添加您的评论作为答案,我可以接受。谢谢。

标签: javascript angular html canvas html5-canvas


【解决方案1】:

您可以在屏幕画布上绘制图像,也可以在缓冲区画布(不附加到 DOM)上绘制图像,缓冲区画布可能与缩放后的图像一样大,您可以在缓冲区画布上使用toDataURL()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2012-07-11
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多