@file-viewer/renderer-image

中文文档
3.3.3发布于 2026/10/31Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 6.5万

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

中文使用文档
文档目录4 节
  1. 使用
  2. 能力
  3. 迁移说明
  4. 鼠标手型拖拽

@file-viewer/renderer-image

English · 简体中文

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 解码器。

使用

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

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

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

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 共发布 58 个版本,首次发布于 2026/06/23;过去 12 个月发布了 58 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.3.3latest2026/10/3114 天前
3.3.12026/10/3015 天前
3.3.02026/10/2718 天前
3.2.22026/10/1827 天前
3.2.12026/10/1530 天前
3.2.02026/10/1530 天前

关于 @file-viewer/renderer-image 的常见问题

@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 和提交记录判断。