首页 文章

用canvas调整图像大小 - css溢出问题

提问于
浏览
2

我正在开发一个JavaScript图像大小调整功能,它依赖于IE只有DXImageTransform插件 .

想要解决现代浏览器的问题,我还是给了画布一个很好的结果 .

但是,我在调整大小功能时面临一个问题,如下所示:

function Resize(oObj, flMultiplier)
{       
  var canvas = document.getElementById('canvas');
  var canvasContext = canvas.getContext('2d');

  oObj.style.visibility = 'hidden';

  canvasContext.clearRect(0,0,canvas.width,canvas.height); // clear canvas
  canvasContext.fillStyle = 'rgba(0,0,0,0.4)';
  canvasContext.scale(flMultiplier,flMultiplier);
  canvasContext.drawImage(oObj, 0, 0);
}

如果我的图像变得比画布项目大,那么人们将只看到图像的一部分,这是不好的 .

我试图在运行时调整画布大小,但是如果影响调整大小的图像的显示 .

所以我最终宣布了一个很大的画布元素,这是非常好的,除了我的网页的CSS溢出调整我的最大元素,而不是我调整大小的图像,这是一个痛苦 .

所以我想有两种方法可以解决我的问题:

  • 尝试从溢出方案中排除大画布元素

  • 尝试在调整大小时更新画布元素大小(我可能错过了那里的东西)

1 回答

  • 2

    我自己没有尝试过,但也许你可以用 document.createElement 从Dom创建一个canvas元素 . 它可以是任意大小而不会打扰显示器 .

    现在,我缺乏上下文(为什么你这样调整图像大小而不是使用宽度和高度属性,以及其他问题)所以也许我错过了这一点 .

相关问题