html5-canvas 图片缩放图像以适合或填充

ゝ一纸荒年。 2023-10-02 11:08 81阅读 0赞

缩放以适应

意味着整个图像将可见,但如果图像与画布的外观不同,则侧面或顶部和底部可能会有一些空白空间。该示例显示了缩放以适合的图像。侧面的蓝色是由于图像与画布的外观不同。

缩放以填充

意味着缩放图像,以便图像覆盖所有画布像素。如果图像方面与画布不同,则图像的某些部分将被剪裁。该示例显示了缩放以填充的图像。请注意图像的顶部和底部是如何不再可见的。

示例缩放以适合

  1. var image = new Image();
  2. image.src = "imgURL";
  3. image.onload = function(){
  4. scaleToFit(this);
  5. }
  6. function scaleToFit(img){
  7. // get the scale
  8. var scale = Math.min(canvas.width / img.width, canvas.height / img.height);
  9. // get the top left position of the image
  10. var x = (canvas.width / 2) - (img.width / 2) * scale;
  11. var y = (canvas.height / 2) - (img.height / 2) * scale;
  12. ctx.drawImage(img, x, y, img.width * scale, img.height * scale);
  13. }

#

示例 缩放填充

  1. var image = new Image();
  2. image.src = "imgURL";
  3. image.onload = function(){
  4. scaleToFill(this);
  5. }
  6. function scaleToFill(img){
  7. // get the scale
  8. var scale = Math.max(canvas.width / img.width, canvas.height / img.height);
  9. // get the top left position of the image
  10. var x = (canvas.width / 2) - (img.width / 2) * scale;
  11. var y = (canvas.height / 2) - (img.height / 2) * scale;
  12. ctx.drawImage(img, x, y, img.width * scale, img.height * scale);
  13. }

这两个函数之间的唯一区别是获取比例。拟合使用最小拟合比例,填充使用最大拟合比例。

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 图像算法

    怎样计算缩放比例? 有四种方法:1.对角线法,以对角线长度为准,其伸长者为放大,缩短者为缩小,其底边并行线即为新尺寸。2.计算器法,先输入欲缩放宽度,按除键,再输入原稿尺