diff options
| author | rinsuki <428rinsuki+git@gmail.com> | 2018-05-17 07:52:24 +0900 |
|---|---|---|
| committer | rinsuki <428rinsuki+git@gmail.com> | 2018-05-17 07:52:24 +0900 |
| commit | 829b4012e6dc14eb64a3d8f60826fe9b6a41b40d (patch) | |
| tree | 42ac37f323db349dca9316e6fdb39fc33b860686 /src/drive | |
| parent | add yarn.lock to gitignore (diff) | |
| parent | Update deliver.ts (diff) | |
| download | misskey-829b4012e6dc14eb64a3d8f60826fe9b6a41b40d.tar.gz misskey-829b4012e6dc14eb64a3d8f60826fe9b6a41b40d.tar.bz2 misskey-829b4012e6dc14eb64a3d8f60826fe9b6a41b40d.zip | |
Merge branch 'master' into fix/yarn-lock-ignore
Diffstat (limited to 'src/drive')
| -rw-r--r-- | src/drive/gen-thumbnail.ts | 25 |
1 files changed, 25 insertions, 0 deletions
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<stream.Readable> { + 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; +} |