summaryrefslogtreecommitdiff
path: root/src/drive
diff options
context:
space:
mode:
authorrinsuki <428rinsuki+git@gmail.com>2018-05-17 07:52:24 +0900
committerrinsuki <428rinsuki+git@gmail.com>2018-05-17 07:52:24 +0900
commit829b4012e6dc14eb64a3d8f60826fe9b6a41b40d (patch)
tree42ac37f323db349dca9316e6fdb39fc33b860686 /src/drive
parentadd yarn.lock to gitignore (diff)
parentUpdate deliver.ts (diff)
downloadmisskey-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.ts25
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;
+}