UNPKG

browsertime

Version:

Get performance metrics from your web page using Browsertime.

77 lines (73 loc) 1.53 kB
import path from 'node:path'; import { pathToFolder } from '../pathToFolder.js'; export async function savePngWithoutResize( name, data, url, storageManager, dir, options ) { return storageManager.writeData( `${name}.png`, data, path.join(pathToFolder(url, options), dir) ); } export async function savePng( name, data, url, storageManager, config, dir, options ) { let jimp; try { jimp = await import('jimp'); } catch { jimp = undefined; } if (jimp) { const image = await jimp.default.read(data); const buffer = await image .deflateLevel(config.png.compressionLevel) .scaleToFit(config.maxSize, config.maxSize, jimp.default.RESIZE_HERMITE) .getBufferAsync('image/png'); return storageManager.writeData( `${name}.png`, buffer, path.join(pathToFolder(url, options), dir) ); } } export async function saveJpg( name, data, url, storageManager, config, dir, options ) { let jimp; try { jimp = await import('jimp'); } catch { jimp = undefined; } if (jimp) { const image = await jimp.default.read(data); // https://github.com/sitespeedio/sitespeed.io/issues/3922 const buffer = await image .quality(config.jpg.quality) .scaleToFit(config.maxSize, config.maxSize, jimp.default.RESIZE_HERMITE) .getBufferAsync('image/jpeg'); return storageManager.writeData( `${name}.jpg`, buffer, path.join(pathToFolder(url, options), dir) ); } }