mirror of
https://github.com/Brooooooklyn/Image.git
synced 2025-12-08 18:36:03 +00:00
31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
import { readFileSync, writeFileSync } from 'fs'
|
|
|
|
import { losslessCompressPngSync, compressJpegSync, pngQuantizeSync, Transformer } from '@napi-rs/image'
|
|
|
|
const PNG = readFileSync('./un-optimized.png')
|
|
const JPEG = readFileSync('./un-optimized.jpg')
|
|
// https://github.com/ianare/exif-samples/blob/master/jpg/orientation/portrait_5.jpg
|
|
const WITH_EXIF = readFileSync('./with-exif.jpg')
|
|
|
|
writeFileSync('optimized-lossless.png', losslessCompressPngSync(PNG))
|
|
|
|
writeFileSync('optimized-lossy.png', pngQuantizeSync(PNG))
|
|
|
|
writeFileSync('optimized-lossless.jpg', compressJpegSync(readFileSync('./un-optimized.jpg')))
|
|
|
|
writeFileSync('optimized-lossless.webp', new Transformer(PNG).webpLosslessSync())
|
|
|
|
writeFileSync('optimized-lossy-jpeg.webp', new Transformer(JPEG).webpSync(90))
|
|
|
|
writeFileSync('optimized-lossy.webp', new Transformer(PNG).webpSync(90))
|
|
|
|
writeFileSync('optimized.avif', new Transformer(PNG).avifSync())
|
|
|
|
writeFileSync(
|
|
'output-exif.webp',
|
|
await new Transformer(WITH_EXIF)
|
|
.rotate()
|
|
.resize(450 / 2)
|
|
.webp(75),
|
|
)
|