aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/image-utils.ts
diff options
context:
space:
mode:
authorbuoyantair <buoyantair@protonmail.com>2018-11-20 12:28:13 +0530
committerbuoyantair <buoyantair@protonmail.com>2018-11-20 12:28:13 +0530
commitbc22d60899e14631cba0fb6450f4e85fc9528293 (patch)
tree285fa55033bc065df803adc2e4e3142fdfdd7309 /server/helpers/image-utils.ts
parentb9f234371bfaf0d9cfa81e02fcea92cac1f9ae13 (diff)
parentd216b5387fb774d1355df3ace002f7be469bd450 (diff)
downloadPeerTube-bc22d60899e14631cba0fb6450f4e85fc9528293.tar.gz
PeerTube-bc22d60899e14631cba0fb6450f4e85fc9528293.tar.zst
PeerTube-bc22d60899e14631cba0fb6450f4e85fc9528293.zip
Merge branch 'develop' of https://github.com/Chocobozzz/PeerTube into move-utils-to-shared
Diffstat (limited to 'server/helpers/image-utils.ts')
-rw-r--r--server/helpers/image-utils.ts19
1 files changed, 17 insertions, 2 deletions
diff --git a/server/helpers/image-utils.ts b/server/helpers/image-utils.ts
index 3eaa674ed..da3285b13 100644
--- a/server/helpers/image-utils.ts
+++ b/server/helpers/image-utils.ts
@@ -1,13 +1,28 @@
1import 'multer' 1import 'multer'
2import * as sharp from 'sharp' 2import * as sharp from 'sharp'
3import { remove } from 'fs-extra' 3import { move, remove } from 'fs-extra'
4 4
5async function processImage ( 5async function processImage (
6 physicalFile: { path: string }, 6 physicalFile: { path: string },
7 destination: string, 7 destination: string,
8 newSize: { width: number, height: number } 8 newSize: { width: number, height: number }
9) { 9) {
10 await sharp(physicalFile.path) 10 if (physicalFile.path === destination) {
11 throw new Error('Sharp needs an input path different that the output path.')
12 }
13
14 const sharpInstance = sharp(physicalFile.path)
15 const metadata = await sharpInstance.metadata()
16
17 // No need to resize
18 if (metadata.width === newSize.width && metadata.height === newSize.height) {
19 await move(physicalFile.path, destination, { overwrite: true })
20 return
21 }
22
23 await remove(destination)
24
25 await sharpInstance
11 .resize(newSize.width, newSize.height) 26 .resize(newSize.width, newSize.height)
12 .toFile(destination) 27 .toFile(destination)
13 28