handy-img v0.9.1
handy-img
handy img tool and API
compress Features
- target mozjpeg / webp are supported.
@squoosh/clisupports more format. - Node.js native addon, better performance than squoosh WASM version.
- batch process, support
--filesglob or dir mode--dir - parallel compress. set your
UV_THREADPOOL_SIZE=64(see this) and handy-img will use this as concurrency.
Install
$ pnpm add -g handy-imgor invoke without install
# pnpm, recommend
pnpm dlx handy-img
# or yarn 2
yarn dlx handy-img
# or npx/pnpx
npx handy-img
pnpx handy-imgcli
just type himg or handy-img
$ himg
himg <命令>
命令:
himg compress <file> compress file [aliases: c]
himg info <file> show info for file [aliases: i]
选项:
--version 显示版本号 [布尔]
--help 显示帮助信息 [布尔]
缺少 non-option 参数:传入了 0 个, 至少需要 1 个himg compress or himg c
$ himg c -h
Compress img
$ handy-img compress
━━━ Options ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-f,--files #0 files as input
--ignore-case ignore case for -f,--files, default true
--glob-cwd #0 cwd used in glob
-t,--tokens,--show-tokens show available tokens
-o,--output #0 output patterns
--codec #0 Allowed codec: `mozjpeg` or `webp`
--metadata keep metadata(only available with --codec webp)
-q,--quality #0 quality
-d,--dir #0 compress whole dir, and output to dir_compressed
--dir-suffix #0 suffix to append to original dir name when using -d,--dir mode
-y,--yes exec commands, default false(only preview commands, aka dry run)flags
| flag | desc | default | remark |
|---|---|---|---|
-f,--files | specify input, | glob supported, see globby & fast-glob | |
--ignore-case | ignore case when glob input | true | |
--glob-cwd | cwd of -f,--files provided | pwd | |
-t,--tokens,--show-tokens | show available tokens | help you to decide the -o,--output flag, see below | |
-o,--output | output pattern | ||
--codec | Allowed codec: mozjpeg or webp or mozjpeg-raw | mozjpeg | |
--metadata | keep metadata(not available with --codec mozjpeg-raw) | true | keep exif data |
-q,--quality | quality | 80 | encode quality, 0-100 |
-d,--dir | compress whole dir, and output to dir_compressed | ||
--dir-suffix | suffix to append to original dir name when using -d,--dir mode | _compressed | |
-O,--other,--other-files | how to handle other files in dir mode | move or copy none img files to newly created dir | |
-y,--yes | exec commands, default false(only preview commands, aka dry run) | false |
Usage
-d, use dir mode
himg c -d ./your-dir-here -yglob all imgs in the dir you provided, and output to a new directory, which name is original name + dir suffix and img will keep same structure.
# example
himg c -d dir -q 85 -y
about -y,--yes
without this option, you will see what input will be processed and what file will be generated. but the compress action will not really execute. aka dry run.
--------------------------------------------------------------------------------
current previewing commands. After comfirmed, append -y or --yes flag to execute
--------------------------------------------------------------------------------it's like a safety guard for a gun
-f,--files, single or multiple files
1.decide input

2.then use -t,--tokens,--show-tokens show available tokens

3.write your output pattern & preview
example pattern himg c -f './*.jpg' -t -o ':dir/:name_compressed.:ext'

example pattern himg c -f './*.jpg' -t -o ':dir/compressed/:name.:ext'

4.use -y,--yes to execute
Which codec & quality should I choose ?
See
- https://tsev.dev/posts/2023-11-10-should-avif-be-the-dominant-image-format/
- AND https://github.com/magicdawn/magicdawn/issues/170#issuecomment-1858817900
Changelog
License
the MIT License http://magicdawn.mit-license.org
1 year ago
1 year ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago