From 37edacce44cb7d63c35fee88e0b43028a1c7765c Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 9 Dec 2017 22:35:26 +0900 Subject: [PATCH] Use ImageMagick instead of GraphicsMagick --- docs/setup.en.md | 2 +- docs/setup.ja.md | 2 +- src/api/common/add-file-to-drive.ts | 6 +++++- src/file/server.ts | 7 ++++++- src/utils/dependencyInfo.ts | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/setup.en.md b/docs/setup.en.md index 9c31e4f17..b81245d89 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -53,7 +53,7 @@ Please install and setup these softwares: * *Node.js* and *npm* * **[MongoDB](https://www.mongodb.com/)** * **[Redis](https://redis.io/)** -* **[GraphicsMagick](http://www.graphicsmagick.org/)** +* **[ImageMagick](http://www.imagemagick.org/script/index.php)** ##### Optional * [Elasticsearch](https://www.elastic.co/) - used to provide searching feature instead of MongoDB diff --git a/docs/setup.ja.md b/docs/setup.ja.md index 1e8bb553f..1662d1ee5 100644 --- a/docs/setup.ja.md +++ b/docs/setup.ja.md @@ -54,7 +54,7 @@ web-push generate-vapid-keys * *Node.js* と *npm* * **[MongoDB](https://www.mongodb.com/)** * **[Redis](https://redis.io/)** -* **[GraphicsMagick](http://www.graphicsmagick.org/)** +* **[ImageMagick](http://www.imagemagick.org/script/index.php)** ##### オプション * [Elasticsearch](https://www.elastic.co/) - 検索機能を向上させるために用います。 diff --git a/src/api/common/add-file-to-drive.ts b/src/api/common/add-file-to-drive.ts index dea02eeca..109e88610 100644 --- a/src/api/common/add-file-to-drive.ts +++ b/src/api/common/add-file-to-drive.ts @@ -5,7 +5,7 @@ import * as stream from 'stream'; import * as mongodb from 'mongodb'; import * as crypto from 'crypto'; -import * as gm from 'gm'; +import * as _gm from 'gm'; import * as debug from 'debug'; import fileType = require('file-type'); import prominence = require('prominence'); @@ -16,6 +16,10 @@ import serialize from '../serializers/drive-file'; import event, { publishDriveStream } from '../event'; import config from '../../conf'; +const gm = _gm.subClass({ + imageMagick: true +}); + const log = debug('misskey:register-drive-file'); const tmpFile = (): Promise => new Promise((resolve, reject) => { diff --git a/src/file/server.ts b/src/file/server.ts index 1f8d21b80..187ce75c2 100644 --- a/src/file/server.ts +++ b/src/file/server.ts @@ -7,11 +7,15 @@ import * as express from 'express'; import * as bodyParser from 'body-parser'; import * as cors from 'cors'; import * as mongodb from 'mongodb'; -import * as gm from 'gm'; +import * as _gm from 'gm'; import * as stream from 'stream'; import DriveFile, { getGridFSBucket } from '../api/models/drive-file'; +const gm = _gm.subClass({ + imageMagick: true +}); + /** * Init app */ @@ -78,6 +82,7 @@ function thumbnail(data: stream.Readable, type: string, resize: number): ISend { const stream = g .compress('jpeg') .quality(80) + .noProfile() // Remove EXIF .stream(); return { diff --git a/src/utils/dependencyInfo.ts b/src/utils/dependencyInfo.ts index 818fa3136..89af0d20f 100644 --- a/src/utils/dependencyInfo.ts +++ b/src/utils/dependencyInfo.ts @@ -11,7 +11,7 @@ export default class { public showAll(): void { this.show('MongoDB', 'mongo --version', x => x.match(/^MongoDB shell version:? (.*)\r?\n/)); this.show('Redis', 'redis-server --version', x => x.match(/v=([0-9\.]*)/)); - this.show('GraphicsMagick', 'gm -version', x => x.match(/^GraphicsMagick ([0-9\.]*) .*/)); + this.show('ImageMagick', 'magick -version', x => x.match(/^Version: ImageMagick (.+?)\r?\n/)); } public show(serviceName: string, command: string, transform: (x: string) => RegExpMatchArray): void {