CollectionFS Graphicsmagick 仅在大于时调整宽度

CollectionFS Graphicsmagick resize width only if larger than

在 collectionfs 上,我有以下方法可以将大图像的宽度调整为 1200 像素,高度保持比例以减小文件大小。

var createPic = function(fileObj, readStream, writeStream) {
    gm(readStream, fileObj.name()).resize(1200).quality(100).autoOrient().stream().pipe(writeStream);
}

假设尺寸为 2000x2000 的图片实际上最终上传为 1200x1200,但文件大小更大。你能解释为什么吗?如果宽度超过例如 2000px,我如何修改方法以仅调整图像大小?

这个有效:

gm(readStream, fileObj.name()).resize(1200, 1200, '>').quality(100).autoOrient().stream().pipe(writeStream);

但是,在将它与 gridfs 包一起使用后,您可能会遇到此错误: Error: <ID> does not exist。这是一个包的错误,所以这个话题将单独讨论。