node-webp.ts
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

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.

Platform Install Command
Ubuntu sudo apt-get install webp
ArchLinux sudo pacman -S libwebp
CentOS sudo yum install libwebp-tools
MacOS brew install webp
Windows scoop install libwebp
Windows choco 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

Package Sidebar

Install

npm i node-webp.ts

Weekly Downloads

3

Version

1.0.0

License

BSD-2-Clause

Unpacked Size

8.44 kB

Total Files

5

Last publish

Collaborators

  • beenotung