0

collectionfs では、次の方法で大きな画像のサイズを幅 1200px に変更し、ファイル サイズを縮小するために高さを比例させます。

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

たとえば、サイズが 2000x2000 の画像は、実際には 1200x1200 でアップロードされますが、ファイル サイズは大きくなります。理由を説明できますか?また、幅がたとえば 2000px を超える場合にのみ画像のサイズを変更するようにメソッドを変更するにはどうすればよいですか?

4

1 に答える 1

0

これは機能します:

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

ただし、gridfs パッケージで使用すると、次のエラーが発生する場合があります Error: <ID> does not exist。これはパッケージのバグであるため、このトピックは個別に扱います。

于 2016-05-13T10:22:03.753 に答える