目前,我正在亚马逊的S3上存储图像(配置文件图像),这是非常完美的。我使用cfs:graphicsmagick将图像大小调整为300 if,但我只想在大于300 if的情况下才能这样做。如果有人上传一些更小的东西,我不想把它放大,这会让它看起来很糟糕。
我的当前代码(非条件代码)如下:
var profileStore = new FS.Store.S3("profileImages", {
accessKeyId: "--KEY--",
secretAccessKey: "--KEY--",
bucket: "meteor-intrepid",
folder: "profiles",
transformWrite: function(fileObj, readStream, writeStream) {
gm(readStream, fileObj.name()).resize('300').stream().pipe(writeStream);
}
});
正如您所看到的,我正在使用FS.Store.S3对象中的一个FS.Store.S3来处理这个问题。我阅读了正在使用的Node.js库(gm)的文档,我看到有一个.size()函数,但是我无法让它工作。如何有条件地缩放图像?
提前谢谢。
发布于 2015-06-04 16:17:31
追加
GraphicMagick 文档摘录
默认情况下,宽度和高度是最大值。也就是说,图像被扩展或压缩以适应宽度和高度值,同时保持图像的高宽比。 将^附加到几何图形中,以便在保持图像的高宽比的同时调整图像的大小,但结果的宽度或高度被视为最小值,而不是最大值。 在几何图形上追加感叹号,以强制图像大小与您指定的大小完全一致。例如,如果您指定640x480!图像宽度设置为640像素,高度设置为480。 仅当图像的宽度或高度超过几何规格时,才使用>更改图像的尺寸。<仅当图像的尺寸小于几何规格时才调整图像的大小。例如,如果指定“640x480>”且图像大小为256x256,则图像大小不会更改。但是,如果图像为512x512或1024x1024,则将其大小调整为480x480。将几何图形规范用引号括起来,以防止<或>被shell解释为文件重定向。
https://stackoverflow.com/questions/30647678
复制相似问题