From 15e4cf1243001873edd1860ee61bc96d003214ee Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 3 May 2018 20:03:14 +0900 Subject: サムネイルを予め生成するように MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drive/gen-thumbnail.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/drive/gen-thumbnail.ts (limited to 'src/drive') diff --git a/src/drive/gen-thumbnail.ts b/src/drive/gen-thumbnail.ts new file mode 100644 index 0000000000..455705cd3a --- /dev/null +++ b/src/drive/gen-thumbnail.ts @@ -0,0 +1,25 @@ +import * as stream from 'stream'; +import * as Gm from 'gm'; +import { IDriveFile, getDriveFileBucket } from '../models/drive-file'; + +const gm = Gm.subClass({ + imageMagick: true +}); + +export default async function(file: IDriveFile): Promise { + if (!/^image\/.*$/.test(file.contentType)) return null; + + const bucket = await getDriveFileBucket(); + const readable = bucket.openDownloadStream(file._id); + + const g = gm(readable); + + const stream = g + .resize(256, 256) + .compress('jpeg') + .quality(70) + .interlace('line') + .stream(); + + return stream; +} -- cgit v1.2.3-freya