# @file-viewer/renderer-image 中文文档

规范地址：https://npmcn.com/package/%40file-viewer/renderer-image/

版本：3\.3\.3
npm 元数据更新时间：2026-10-31T11:12:26.263Z
中文译文更新时间：2026-11-14T17:42:15.392Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40file-viewer/renderer-image
原文对照：https://npmcn.com/package/%40file-viewer/renderer-image/?lang=original
项目主页：https://doc.file-viewer.app/guide/on-demand-renderers
源码仓库：https://github.com/flyfish-dev/file-viewer

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：75.4 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-06-23T06:25:54.198Z
- 最新版本发布：2026-10-31T11:12:25.908Z
- 近 30 天下载量：64522（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：58（近 12 个月 58 个）

## 中文简介

文件查看器的独立图像渲染器插件,带有本土图像预览,有多页 TIFF 和 HEIC/HEIF 转换,灯盒,以及统一的缩放支持.

## 安装

```sh
npm install @file-viewer/renderer-image
```

也可以使用：`pnpm add @file-viewer/renderer-image`、`yarn add @file-viewer/renderer-image`、`bun add @file-viewer/renderer-image`

## README

# @file-viewer/renderer-image

[English](https://github.com/flyfish-dev/file-viewer/blob/main/packages/renderers/image/README.md) · [简体中文](https://github.com/flyfish-dev/file-viewer/blob/main/packages/renderers/image/README.zh-CN.md)

Flyfish File Viewer 的独立图片 renderer 包。它负责 `png`、`jpg`、`webp`、`avif`、`gif`、`svg`、`tiff`、`ico`、`heic`、`heif`、`jxl` 等图片类文件的浏览器端预览、灯箱查看和统一缩放。

TIFF 会在命中格式后按需加载 MIT 许可的 UTIF.js，支持 CCITT Group 4 和多页纵向预览，并提供整组缩放、旋转、适宽、页码状态与双击/键盘放大。解码前会限制源文件大小、页数、单页尺寸和累计像素，逐页转换后立即释放 RGBA 缓冲；普通 PNG/JPEG/WEBP 等路径不加载 TIFF 解码器。

## 使用

```ts
import { imageRenderer } from '@file-viewer/renderer-image'

const options = {
  builtinRenderers: 'none',
  renderers: [imageRenderer],
}
```

也可以通过全量 preset 自动装配：

```ts
import { allRenderers } from '@file-viewer/preset-all'

const options = {
  builtinRenderers: 'none',
  renderers: allRenderers,
}
```

## 能力

-   普通图片使用浏览器原生解码，不引入额外运行时。
-   HEIC / HEIF 只在命中格式时动态加载 `heic2any` 并转换为 PNG Data URL。
-   支持左右 90° 旋转；主视图和灯箱都会按旋转后的宽高重新适配，不裁切图片。
-   支持图片灯箱、统一缩放和 view-state provider、明暗主题背景和组件卸载清理。

## 迁移说明

`@file-viewer/core` 仍保留 PNG / JPEG / SVG / WebP 等浏览器原生图片的轻量预览，但已不再默认安装 `heic2any`。需要 HEIC / HEIF 转换预览、或希望完全由独立图片 renderer 接管图片链路时，请显式安装本包，或直接使用 `@file-viewer/preset-all` 聚合能力。

## 鼠标手型拖拽

在查看器配置中设置 `image: { handTool: true }`，即可用鼠标主键拖动放大后超出容器的图片，默认 `false`。轻量内置图片、独立图片包与多页 TIFF 使用同一配置，放大后仍可滚动到图片两端。

普通单击和键盘操作仍可打开大图，TIFF 保留双击和键盘打开方式；完成拖动时会抑制其意外单击。工具栏、滚动条及原生触摸滚动/捏合保持原有行为，取消指针、失焦、来源中止和卸载会释放拖动状态。

## 常见问题

### @file-viewer/renderer-image 是什么？

文件查看器的独立图像渲染器插件,带有本土图像预览,有多页 TIFF 和 HEIC/HEIF 转换,灯盒,以及统一的缩放支持\.

### 如何安装 @file-viewer/renderer-image？

在项目目录运行 npm install @file-viewer/renderer-image，或使用 pnpm add / yarn add / bun add。

### @file-viewer/renderer-image 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @file-viewer/renderer-image 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @file-viewer/renderer-image 可以商用吗？

@file-viewer/renderer-image 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @file-viewer/renderer-image 的下载量有多少？

根据 npm 官方下载统计，@file-viewer/renderer-image 在 2026/10/15 – 2026/11/13 这 30 天内被下载 64,522 次，日均约 2,151 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @file-viewer/renderer-image 还在维护吗？

最新版本 3\.3\.3 发布于 2026/10/31（14 天前）；至今共发布 58 个版本，其中过去 12 个月发布了 58 个；首次发布于 2026/06/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

