X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fimage-utils.ts;h=122fb009d1950b10f644e26d0e42463d255668eb;hb=4f97f58383c37d11a8f8ae3ef6e2b761307cb4d0;hp=9285c12fc59aa383de2b4135b1933347ff67cf59;hpb=1664bc60eb7aa3fa3792b6acff50f9bbabd3d877;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/image-utils.ts b/server/helpers/image-utils.ts index 9285c12fc..122fb009d 100644 --- a/server/helpers/image-utils.ts +++ b/server/helpers/image-utils.ts @@ -1,16 +1,21 @@ import { copy, readFile, remove, rename } from 'fs-extra' import * as Jimp from 'jimp' -import { extname } from 'path' +import { v4 as uuidv4 } from 'uuid' +import { getLowercaseExtension } from './core-utils' import { convertWebPToJPG, processGIF } from './ffmpeg-utils' import { logger } from './logger' +function generateImageFilename (extension = '.jpg') { + return uuidv4() + extension +} + async function processImage ( path: string, destination: string, newSize: { width: number, height: number }, keepOriginal = false ) { - const extension = extname(path) + const extension = getLowercaseExtension(path) if (path === destination) { throw new Error('Jimp/FFmpeg needs an input path different that the output path.') @@ -31,6 +36,7 @@ async function processImage ( // --------------------------------------------------------------------------- export { + generateImageFilename, processImage } @@ -55,7 +61,8 @@ async function jimpProcessor (path: string, destination: string, newSize: { widt await remove(destination) // Optimization if the source file has the appropriate size - if (await skipProcessing({ jimpInstance, newSize, imageBytes: inputBuffer.byteLength, inputExt, outputExt: extname(destination) })) { + const outputExt = getLowercaseExtension(destination) + if (skipProcessing({ jimpInstance, newSize, imageBytes: inputBuffer.byteLength, inputExt, outputExt })) { return copy(path, destination) }