画布图像大小调整使文件更大[重复]

Posted

技术标签:

【中文标题】画布图像大小调整使文件更大[重复]【英文标题】:Canvas image resizing makes file bigger [duplicate] 【发布时间】:2017-08-27 09:20:56 【问题描述】:

我正在实现图像上传,但在此之前,我想根据限制(例如最大宽度、最大高度、最大面积)进行一些调整大小。问题不是调整图像大小,而是文件大小。

我已经放弃了质量,从以下位置获得的结果没有明显差异:画布、Pica、Hermite,所以我决定使用屏幕外画布。

文件大小是更大的问题,例如:如果我有 PNG 图像,即 345x518 (54.2kB),我希望它适合 512x512 的区域,在将其调整为 341x512 jpeg(相同的纵横比)后,文件大小变为 171.7 KB。

调整大小功能:

function _canvasImageGet(original, dims) 
  var canvas = document.createElement("canvas");
  canvas.width = dims.w;
  canvas.height = dims.h;
  canvas.getContext("2d").drawImage(original, 0, 0, canvas.width, canvas.height);

  return canvas;

有什么办法,在调整大小后如何获得更小或相同的文件大小?它不必使用 Canvas,但如果调整大小将在客户端上进行,我将不胜感激。谢谢大家的回答。

【问题讨论】:

将取决于图像及其包含的内容。当您将图像转换为 jpeg 时,您可以将质量设置为第二个参数。例如canvas.toDataURL("image/jpeg",quality) 质量在 0 【参考方案1】:

我使用的 Canvas 和其他库没有使用压缩,因此在调整大小后,输出文件自然比以前大。我找到了我需要的东西。 image-compressor 进行大小调整和压缩,所有这些都在客户端完成。还有另一个库JIC,但它不能调整大小。

【讨论】:

以上是关于画布图像大小调整使文件更大[重复]的主要内容,如果未能解决你的问题,请参考以下文章

调整图像大小以使大小与指定的纵横比匹配[重复]

使用fabric js调整画布大小[重复]

Python,调整文件夹中的图像大小[重复]

按比例调整图像大小以适合 HTML5 画布

在最长边上调整图像大小[重复]

在css中调整图像大小以自动调整div [重复]