From 60131e12a79f9cec5e08c96f4c16b2b78c24a3a0 Mon Sep 17 00:00:00 2001 From: amhsirak Date: Mon, 6 Jan 2025 11:54:48 +0530 Subject: [PATCH] feat: optimize screenshot --- .../classes/RemoteBrowser.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/server/src/browser-management/classes/RemoteBrowser.ts b/server/src/browser-management/classes/RemoteBrowser.ts index f64c0613..53df4900 100644 --- a/server/src/browser-management/classes/RemoteBrowser.ts +++ b/server/src/browser-management/classes/RemoteBrowser.ts @@ -426,6 +426,26 @@ export class RemoteBrowser { } }; + private async optimizeScreenshot(screenshot: Buffer): Promise { + try { + return await sharp(screenshot) + .jpeg({ + quality: Math.round(SCREENCAST_CONFIG.compressionQuality * 100), + progressive: true + }) + .resize({ + width: SCREENCAST_CONFIG.maxWidth, + height: SCREENCAST_CONFIG.maxHeight, + fit: 'inside', + withoutEnlargement: true + }) + .toBuffer(); + } catch (error) { + logger.error('Screenshot optimization failed:', error); + return screenshot; + } + } + /** * Makes and emits a single screenshot to the client side. * @returns {Promise}