| |
| |
| |
| |
| |
|
|
| 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}`) |
| } |
|
|