npm package: @kwayteow/picopress
Description: 基于tinify的命令行图片压缩工具
Author: 0zero
Latest version: 0.1.0

@kwayteow/picopress
=================

基于tinify的命令行图片压缩工具


[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/@kwayteow/picopress.svg)](https://npmjs.org/package/@kwayteow/picopress)
[![Downloads/week](https://img.shields.io/npm/dw/@kwayteow/picopress.svg)](https://npmjs.org/package/@kwayteow/picopress)


<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
* [PicoPress](#picopress)
* [设置API密钥](#设置api密钥)
* [设置语言（支持 zh-CN 和 en-US）](#设置语言支持-zh-cn-和-en-us)
* [查看当前配置](#查看当前配置)
* [查看特定配置项](#查看特定配置项)
* [删除配置项](#删除配置项)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g @kwayteow/picopress
$ picopres COMMAND
running command...
$ picopres (--version)
@kwayteow/picopress/0.1.0 linux-x64 node-v22.14.0
$ picopres --help [COMMAND]
USAGE
  $ picopres COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`picopres compress SOURCE`](#picopres-compress-source)
* [`picopres config [KEY] [VALUE]`](#picopres-config-key-value)
* [`picopres help [COMMAND]`](#picopres-help-command)
* [`picopres plugins`](#picopres-plugins)
* [`picopres plugins add PLUGIN`](#picopres-plugins-add-plugin)
* [`picopres plugins:inspect PLUGIN...`](#picopres-pluginsinspect-plugin)
* [`picopres plugins install PLUGIN`](#picopres-plugins-install-plugin)
* [`picopres plugins link PATH`](#picopres-plugins-link-path)
* [`picopres plugins remove [PLUGIN]`](#picopres-plugins-remove-plugin)
* [`picopres plugins reset`](#picopres-plugins-reset)
* [`picopres plugins uninstall [PLUGIN]`](#picopres-plugins-uninstall-plugin)
* [`picopres plugins unlink [PLUGIN]`](#picopres-plugins-unlink-plugin)
* [`picopres plugins update`](#picopres-plugins-update)

## `picopres compress SOURCE`

使用 TinyPNG API 压缩图片

```
USAGE
  $ picopres compress SOURCE [-k <value>] [-o <value>]

ARGUMENTS
  SOURCE  要压缩的图片或图片目录的路径

FLAGS
  -k, --key=<value>     TinyPNG API 密钥
  -o, --output=<value>  输出目录

DESCRIPTION
  使用 TinyPNG API 压缩图片

EXAMPLES
  $ picopres compress path/to/image.jpg --key YOUR_API_KEY

  $ picopres compress path/to/images/folder --key YOUR_API_KEY

  $ picopres compress path/to/image.jpg  # 使用全局配置的 API 密钥
```

_See code: [src/commands/compress/index.ts](https://github.com/kway-teow/picopress/blob/v0.1.0/src/commands/compress/index.ts)_

## `picopres config [KEY] [VALUE]`

管理全局配置，如 API 密钥和语言首选项

```
USAGE
  $ picopres config [KEY] [VALUE]

ARGUMENTS
  KEY    配置键名 (apiKey, language 或 debug)
  VALUE  配置的值

DESCRIPTION
  管理全局配置，如 API 密钥和语言首选项

EXAMPLES
  $ picopres config apiKey YOUR_API_KEY

  $ picopres config language en-US

  $ picopres config debug true

  $ picopres config apiKey

  $ picopres config
```

_See code: [src/commands/config/index.ts](https://github.com/kway-teow/picopress/blob/v0.1.0/src/commands/config/index.ts)_

## `picopres help [COMMAND]`

Display help for picopres.

```
USAGE
  $ picopres help [COMMAND...] [-n]

ARGUMENTS
  COMMAND...  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for picopres.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.27/src/commands/help.ts)_

## `picopres plugins`

List installed plugins.

```
USAGE
  $ picopres plugins [--json] [--core]

FLAGS
  --core  Show core plugins.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  List installed plugins.

EXAMPLES
  $ picopres plugins
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/index.ts)_

## `picopres plugins add PLUGIN`

Installs a plugin into picopres.

```
USAGE
  $ picopres plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into picopres.

  Uses npm to install plugins.

  Installation of a user-installed plugin will override a core plugin.

  Use the PICOPRES_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the PICOPRES_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ picopres plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ picopres plugins add myplugin

  Install a plugin from a github url.

    $ picopres plugins add https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ picopres plugins add someuser/someplugin
```

## `picopres plugins:inspect PLUGIN...`

Displays installation properties of a plugin.

```
USAGE
  $ picopres plugins inspect PLUGIN...

ARGUMENTS
  PLUGIN...  [default: .] Plugin to inspect.

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Displays installation properties of a plugin.

EXAMPLES
  $ picopres plugins inspect myplugin
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/inspect.ts)_

## `picopres plugins install PLUGIN`

Installs a plugin into picopres.

```
USAGE
  $ picopres plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into picopres.

  Uses npm to install plugins.

  Installation of a user-installed plugin will override a core plugin.

  Use the PICOPRES_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the PICOPRES_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ picopres plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ picopres plugins install myplugin

  Install a plugin from a github url.

    $ picopres plugins install https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ picopres plugins install someuser/someplugin
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/install.ts)_

## `picopres plugins link PATH`

Links a plugin into the CLI for development.

```
USAGE
  $ picopres plugins link PATH [-h] [--install] [-v]

ARGUMENTS
  PATH  [default: .] path to plugin

FLAGS
  -h, --help          Show CLI help.
  -v, --verbose
      --[no-]install  Install dependencies after linking the plugin.

DESCRIPTION
  Links a plugin into the CLI for development.

  Installation of a linked plugin will override a user-installed or core plugin.

  e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
  command will override the user-installed or core plugin implementation. This is useful for development work.


EXAMPLES
  $ picopres plugins link myplugin
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/link.ts)_

## `picopres plugins remove [PLUGIN]`

Removes a plugin from the CLI.

```
USAGE
  $ picopres plugins remove [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ picopres plugins unlink
  $ picopres plugins remove

EXAMPLES
  $ picopres plugins remove myplugin
```

## `picopres plugins reset`

Remove all user-installed and linked plugins.

```
USAGE
  $ picopres plugins reset [--hard] [--reinstall]

FLAGS
  --hard       Delete node_modules and package manager related files in addition to uninstalling plugins.
  --reinstall  Reinstall all plugins after uninstalling.
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/reset.ts)_

## `picopres plugins uninstall [PLUGIN]`

Removes a plugin from the CLI.

```
USAGE
  $ picopres plugins uninstall [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ picopres plugins unlink
  $ picopres plugins remove

EXAMPLES
  $ picopres plugins uninstall myplugin
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/uninstall.ts)_

## `picopres plugins unlink [PLUGIN]`

Removes a plugin from the CLI.

```
USAGE
  $ picopres plugins unlink [PLUGIN...] [-h] [-v]

ARGUMENTS
  PLUGIN...  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ picopres plugins unlink
  $ picopres plugins remove

EXAMPLES
  $ picopres plugins unlink myplugin
```

## `picopres plugins update`

Update installed plugins.

```
USAGE
  $ picopres plugins update [-h] [-v]

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Update installed plugins.
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.36/src/commands/plugins/update.ts)_
<!-- commandsstop -->

# PicoPress

基于tinify的命令行图片压缩工具。

## 安装

```bash
npm install -g @kwayteow/picopress
```

## 使用方法

### 压缩单个图片

```bash
picopres compress path/to/image.jpg --key YOUR_API_KEY
```

### 压缩整个文件夹中的图片

```bash
picopres compress path/to/images/folder --key YOUR_API_KEY
```

### 输出到指定目录

默认情况下，压缩后的图片会覆盖原始文件。如果你想保留原始文件，可以使用 `--output` 选项指定输出目录：

```bash
picopres compress path/to/images/folder --key YOUR_API_KEY --output path/to/output/folder
```

### 使用环境变量

为了避免每次都输入API密钥，你可以设置环境变量：

```bash
export TINIFY_API_KEY=your_api_key
picopres compress path/to/image.jpg
```

### 使用全局配置

你也可以使用全局配置来存储API密钥和其他设置：

```bash
# 设置API密钥
picopres config apiKey YOUR_API_KEY

# 设置语言（支持 zh-CN 和 en-US）
picopres config language zh-CN

# 查看当前配置
picopres config

# 查看特定配置项
picopres config apiKey

# 删除配置项
picopres config apiKey --unset
```

## 支持的图片格式

- JPEG (.jpg, .jpeg)
- PNG (.png)
- WebP (.webp)

## TinyPNG API

PicoPress 使用 TinyPNG API 来压缩图片。你需要在 [TinyPNG 开发者页面](https://tinypng.com/developers) 注册一个免费账号来获取 API 密钥。免费账号每月可以压缩 500 张图片。

## 开源协议

MIT