【问题标题】:Dragging zoomed in image in Canvas2D HTML5在 Canvas2D HTML5 中拖动放大的图像
【发布时间】:2021-06-08 03:49:06
【问题描述】:

我有一个画布,我在其中将视频帧绘制为图像,如下所示:

ctxVideo.drawImage(img, 0, 0, canvasVideo.width * scale, canvasVideo.height * scale);

初始比例为 1.0,当用户点击放大/缩小按钮时它会发生变化,如下所示:

document.getElementById("plus").addEventListener("click", function (e) {
  scale /= scaleMultiplier;
}, false);

document.getElementById("minus").addEventListener("click", function () {
   scale *= scaleMultiplier;
   if (scale < 1.0) {
    scale = 1.0;
 }
}, false);

这工作得很好,它可以正确放大/缩小,但它会放大到画布的左上角。所以,我需要添加拖动功能,以便用户可以看到放大图像的其他部分。

知道如何实现这一目标吗?

【问题讨论】:

  • 将画布中间平移到 0,0 应用缩放,再次将画布平移回来。将画布中间替换为任何特定感兴趣区域的坐标。

标签: javascript html canvas html5-canvas


【解决方案1】:

最简单的方法可能是使用像 pan-zoom 这样的小型 js 库。否则,您需要自己计算所有偏移量和比例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    相关资源
    最近更新 更多