1.0.0 • Published 9 months ago

node-webp.ts v1.0.0

Weekly downloads
-
License
BSD-2-Clause
Repository
github
Last release
9 months ago

node-webp.ts

Convert image to webp and compress to save space with cwebp system program.

npm Package Version

Usage Example

import { cwebp } from 'node-webp.ts'

let code = await cwebp({
  input: 'res/2m.jpg',
  output: 'res/2m.webp',
  metadata: 'all',
  method: 6,
  preset: 'photo',
})
console.log({ code })

Typescript Types

export function cwebp(options: CwebpOptions): Promise<number | null>

export function cwebp(
  options: CwebpOptions,
  cb: (code: number | null) => void,
): void

export type CwebpOptions = {
  input: string
  output: string
  /** quality: 0..100, default 75 */
  quality?: number
  /** size: max bytes */
  size?: number
  preset?: 'default' | 'photo' | 'picture' | 'drawing' | 'icon' | 'text'
  hint?: 'photo' | 'picture' | 'graph'
  low_memory?: boolean
  lossless?: boolean
  /** near_lossless: 0..100, typically 60 */
  near_lossless?: number
  /** method: 0..6, default 4 */
  method?: number
  auto_filter?: boolean
  /** deblocking_filter: 0..100, typically 20..50 */
  deblocking_filter?: number
  /** spatial_noise_shaping: 0..100, default 50 */
  spatial_noise_shaping?: number
  /** metadata: default 'none' */
  metadata?: 'all' | 'none' | 'exif' | 'icc' | 'xmp'
  /** crop is applied before resize */
  crop?: {
    top: number
    left: number
    width: number
    height: number
  }
  resize?: {
    width: number
    height: number
  }
}

Installation

You can install this package with npm, pnpm, yarn, slnpm and probably any other node.js package manager.

npm install node-webp.ts

This package invokes the system command cwebp. You need to install it separately if it is not already installed.

PlatformInstall Command
Ubuntusudo apt-get install webp
ArchLinuxsudo pacman -S libwebp
CentOSsudo yum install libwebp-tools
MacOSbrew install webp
Windowsscoop install libwebp
Windowschoco install webp

License

This project is licensed with BSD-2-Clause

This is free, libre, and open-source software. It comes down to four essential freedoms [ref]:

  • The freedom to run the program as you wish, for any purpose
  • The freedom to study how the program works, and change it so it does your computing as you wish
  • The freedom to redistribute copies so you can help others
  • The freedom to distribute copies of your modified versions to others