| | |
| | |
| | |
| | |
| | |
| |
|
| | import { fileURLToPath } from 'url' |
| | import path from 'path' |
| | import walk from 'walk-sync' |
| | import sharp from 'sharp' |
| | const __dirname = path.dirname(fileURLToPath(import.meta.url)) |
| |
|
| | const imagesPath = path.join(__dirname, '../assets/images') |
| | const imagesExtensions = ['.jpg', '.jpeg', '.png', '.gif'] |
| |
|
| | const files = walk(imagesPath, { directories: false }).filter((relativePath) => { |
| | return imagesExtensions.includes(path.extname(relativePath.toLowerCase())) |
| | }) |
| | const images = await Promise.all( |
| | files.map(async (relativePath) => { |
| | const fullPath = path.join(imagesPath, relativePath) |
| | const image = sharp(fullPath) |
| | const { width, height } = await image.metadata() |
| | const size = (width || 0) * (height || 0) |
| | return { relativePath, width, height, size } |
| | }), |
| | ) |
| | for (const image of images.sort((a, b) => b.size - a.size)) { |
| | const { relativePath, width, height } = image |
| | console.log(`${width} x ${height} - ${relativePath}`) |
| | } |
| |
|