跳到内容

更新日志

v0.34 - hat

Requires libvips v8.16.1

v0.34.2 - TBD

  • 确保动画 GIF 转换为 WebP 时保留循环(在 0.34.0 中出现回归)。 #3394

  • 确保使用 pdfBackground 构造函数的属性。 #4207

  • 添加对预构建的 Windows ARM64 二进制文件的支持。 #4375 @hans00

  • TypeScript:确保在 WebP 定义中包含 smartDeblock 属性。 #4387 @Stephen-X

v0.34.1 - 2025 年 4 月 7 日

  • TypeScript:确保新的 autoOrient 属性是可选的。 #4362 @styfle

v0.34.0 - 2025 年 4 月 4 日

  • 最新消息:支持将多张输入图片拼接或制作成动画。 #1580

  • 突发:确保 removeAlpha 移除所有 alpha 通道。 #2266

  • 突发消息:非动画 GIF 输出默认设置为不循环,而不是永久循环。 #3394

  • 突发:通过升级到 C++17 支持宽字符系统上的 info.size#3943

  • 突发:确保 background 元数据可以被 color 包解析。 #4090

  • isPalettebitsPerSample 添加到元数据中,弃用 paletteBitDepth

  • 暴露 WebP smartDeblock 输出选项。

  • 防止使用具有 v1 微架构的 linux-x64 二进制文件。

  • 添加 autoOrient 操作和构造函数选项。 #4151 @happycollision

  • TypeScript:确保通道计数使用正确的范围。 #4197 @DavidVaness

  • 改进对 ppc64le 架构的支持。 #4203 @sumitd2

  • 添加 pdfBackground 构造函数属性。 #4207 @calebmer

  • 公开腐蚀与膨胀操作。 #4243 @qpincon

  • 添加对 RGBE 图像的支持。需要编译了辐射支持的 libvips。 #4316 @florentzabera

  • 允许在更高位深下输出宽色域 HEIF。 #4344

v0.33 - gauge

需要 libvips v8.15.5-rc1

v0.33.5 - 2024 年 8 月 16 日

  • 升级到 libvips v8.15.3 以修复上游的漏洞。

  • 在多页输出的响应中添加 pageHeightpages#3411

  • 确保强制使用全局安装的 libvips 的选项能够正确工作。 #4111 @project0

  • 最小化 engines 属性的使用以改进对 yarn v1 的支持。 #4130

  • 确保在使用预编译二进制文件时,sharp.format.heif 仅包含 AVIF。 #4132

  • 添加对 recomb 操作的 4x4 矩阵的支持。 #4147 @ton11797

  • 将 PNG 文本块公开为 comments 元数据。 #4157 @nkeynes

  • 公开 blur 操作的可选 precisionminAmplitude 参数。 #4168 #4172 @marcosc90

  • 确保 keepIccProfile 尽可能避免颜色转换。 #4186

  • TypeScript:chromaSubsampling 元数据是可选的。 #4191 @DavidVaness

v0.33.4 - 2024 年 5 月 16 日

  • 移除 pipelineColourspace 的实验性状态。

  • 当检测到 musl 线程超订阅时减少默认并发数。

  • TypeScript:添加 OverlayOptions 的缺失定义。 #4048 @ike-gg

  • 安装:添加高级选项以强制使用全局安装的 libvips。 #4060

  • 公开 bilinear 缩放内核(以及插值器)。 #4061

  • 确保 extend 操作在多页 TIFF 中保持顺序(在 0.32.0 中的回归)。 #4069

  • 加强对构造函数 text 整数属性的验证。 #4071

  • 简化内部 StaySequential 逻辑。 #4074 @kleisauke

  • 确保 negate 操作在配置文件转换之后发生。 #4096 @adriaanmeuris

v0.33.3 - 2024 年 3 月 23 日

  • 升级到 libvips v8.15.2 以修复上游的漏洞。

  • 确保 keepIccProfile 保留 P3 和 CMYK 输入配置文件。 #3906 #4008

  • 确保 text.wrap 属性可以接受 word-char 作为值。 #4028 @yolopunk

  • 确保 clone 对现有选项进行深拷贝。 #4029

  • 添加 bitdepth 选项到 heif 输出(预编译二进制文件仅支持 8 位)。 #4036 @mertalev

v0.33.2 - 2024 年 1 月 12 日

  • 升级到 libvips v8.15.1 以修复上游的漏洞。

  • TypeScript:添加 keepMetadata 的定义。 #3914 @abhi0498

  • 确保 extend 操作在复制时保持顺序(在 0.32.0 中的回归)。 #3928

  • 改进对不受支持的多页旋转的错误处理。 #3940

v0.33.1 - 2023 年 12 月 17 日

  • 添加对 Yarn Plug’n’Play 文件系统布局的支持。 #3888

  • 在尝试使用无效的 ICC 配置文件时发出警告。 #3895

  • 确保尊重 VIPS_NOVECTOR 环境变量。 #3897 @icetee

v0.33.0 - 2023 年 11 月 29 日

  • 停止支持 Node.js 14 和 16,现在需要 Node.js ^18.17.0 或 >= 20.3.0

  • 通过 npm 注册表分发预编译二进制文件,并通过包管理器安装。

  • 从源代码构建需要依赖 node-addon-api

  • 移除 sharp.vendor

  • 部分弃用 withMetadata(),使用 withExif()withIccProfile()

  • 添加对基于 WebAssembly 的运行时的实验性支持。 @RReverser

  • trim 操作的选项必须是对象,添加新的 lineArt 选项。 #2363

  • 通过加权函数改进 tint 操作的亮度。 #3338 @jcupitt

  • 确保所有 Error 对象包含 stack 属性。 #3653

  • 使 heifcompression 选项成为必需的,以帮助减少 HEIF 和 HEIC 的混淆。 #3740

  • 确保正确解释 16 位原始输入。 #3808

  • 添加对使用 TIFF 输出时的 miniswhite 的支持。 #3812 @dnsbty

  • TypeScript:添加 withMetadata 布尔值的缺失定义。 #3823 @uhthomas

  • 添加对输出元数据的更细粒度控制。 #3824

  • 确保多页提取保持顺序。 #3837

v0.32 - flow

需要 libvips v8.14.5

v0.32.6 - 2023 年 9 月 18 日

  • 升级到 libvips v8.14.5 以修复上游的漏洞。

  • 确保复合平铺图像被完全解码(在 0.32.0 中的回归)。 #3767

  • 确保 withMetadata 可以为 RGB16 输出添加 ICC 配置文件。 #3773

  • 确保 withMetadata 不会将 16 位图像减少到 8 位(在 0.32.5 中的回归)。 #3773

  • TypeScript:为 block 和 unblock 添加定义。 #3799 @ldrick

v0.32.5 - 2023 年 8 月 15 日

  • 升级到 libvips v8.14.4 以修复上游的漏洞。

  • TypeScript:在定义中添加缺失的 WebpPresetEnum#3748 @pilotso11

  • 确保使用 musl v1.2.4 进行编译。 #3755 @kleisauke

  • 确保 fitinside 的缩放尊重 90/270 度旋转。 #3756

  • TypeScript:确保 WebpOptionsminSize 属性为布尔值。 #3758 @sho-xizz

  • 确保 withMetadata 添加默认的 sRGB 配置文件。 #3761

v0.32.4 - 2023 年 7 月 21 日

  • 升级到 libvips v8.14.3 以修复上游的漏洞。

  • 公开按名称(un)阻止低级 libvips 操作的能力。

  • 预编译二进制文件:恢复对基于平铺的输出的支持。 #3581

v0.32.3 - 2023 年 7 月 14 日

  • 公开 WebP 输出的 preset 选项。 #3639

  • 确保所有操作的解码保持顺序(在 0.32.2 中的回归)。 #3725

v0.32.2 - 2023 年 7 月 11 日

  • 将 HEIF 输出尺寸限制为 16384x16384,与 libvips 一致。

  • 确保在终止时不会抛出异常。 #3569

  • 确保所有输入使用相同的访问方法(在 0.32.0 中的回归)。 #3669

  • 改进对 jp2 文件名扩展名的检测。 #3674 @bianjunjie1981

  • 保护智能裁剪预乘选项的使用以防止警告(在 0.32.1 中的回归)。 #3710

  • 在调整大小之前,防止在基于仿射的旋转中出现过度计算。 #3722

  • 允许顺序读取用于 EXIF 基础的自动方向调整。 #3725

v0.32.1 - 2023 年 4 月 27 日

  • 添加实验性的 unflatten 操作。 #3461 @antonmarsden

  • 确保使用 flip 操作时强制使用随机访问读取(在 0.32.0 中的回归)。 #3600

  • 确保 linear 操作适用于 16 位输入(在 0.31.3 中的回归)。 #3605

  • 安装:确保代理 URL 被正确记录。 #3615 @TomWis97

  • 确保无配置文件的 CMYK 到 CMYK 的往返跳过颜色空间转换。 #3620

  • 添加对使用非 sRGB 管道颜色空间时的 modulate 操作的支持。 #3620

  • 确保 trim 操作适用于 CMYK 图像(在 0.31.0 中的回归)。 #3636

  • 安装:将 libc 版本强制转换为 semver。 #3641

v0.32.0 - 2023 年 3 月 24 日

  • 默认情况下,尽可能使用顺序读取而不是随机访问读取。

  • reuse 替换 GIF 输出的 optimise / optimize 选项。

  • 为 GIF 输出添加 progressive 选项以进行交错。

  • 为文本图像创建添加 wrap 选项。

  • 为通过 *magick 加载的图像的元数据添加 formatMagick 属性。

  • 优先使用整数(un)预乘法以加快 RGBA 图像的缩放。

  • 添加 ignoreIcc 输入选项以忽略嵌入的 ICC 配置文件。

  • 允许使用 GPS (IFD3) EXIF 元数据。 #2767

  • TypeScript 定义现在直接维护和发布,弃用 @types/sharp 包。 #3369

  • 预编译二进制文件:确保支持 macOS 10.13+,如文档所述。 #3438

  • 预编译二进制文件:防止使用 glib 切片分配器,提高 QEMU 支持。 #3448

  • 在使用基于注意力的裁剪时,将焦点坐标添加到输出中。 #3470 @ejoebstl

  • 将 sharp 版本公开为 sharp.versions.sharp#3471

  • 尊重 WebP 输入的 fastShrinkOnLoad 缩放选项。 #3516

  • 将 sharpen sigma 最大值从 10000 减少到 10。 #3521

  • 添加对 ArrayBuffer 输入的支持。 #3548 @kapouer

  • extend 操作添加对 extendWith 的支持,允许复制/镜像/重复。 #3556 @janaz

  • 确保所有异步 JS 回调都被包装以帮助避免可能的竞态条件。 #3569

  • 预编译二进制文件:由于许可问题,暂时移除对基于平铺的输出的支持。 #3581

  • normalise 添加对 lowerupper 百分位数的支持。 #3583 @LachlanNewman

v0.31 - eagle

需要 libvips v8.13.3

v0.31.3 - 2022 年 12 月 21 日

  • 添加对 JPEG-XL 图像的实验性支持。需要使用 libjxl 编译的 libvips。 #2731

  • 运行时检测 V8 内存笼,确保与 Electron 21 及更高版本的兼容性。 #3384

  • 公开 GIF 优化属性 interFrameMaxErrorinterPaletteMaxError#3401

  • 允许在 Linux 上安装,例如 Fedora 38 的 glibc 补丁版本。 #3423

  • 扩展现有 sharpen 参数的范围以匹配 libvips。 #3427

  • 防止在基于流的输入的元数据等待时出现可能的竞态条件。 #3451

  • 改进 extractChannel 对 16 位输出颜色空间的支持。 #3453

  • 在计算图像统计信息时忽略 sequentialRead 选项。 #3462

  • 对引入非不透明背景的操作进行小幅性能改进。 #3465

  • 确保 linear 操作的整数输出。 #3468

v0.31.2 - 2022 年 11 月 4 日

  • 升级到 libvips v8.13.3 以修复上游的漏洞。

  • 确保手动翻转、旋转、缩放操作顺序(在 0.31.1 中的回归) #3391

  • 确保在没有缩放的情况下自动旋转正常工作(在 0.31.1 中的回归) #3422

v0.31.1 - 2022 年 9 月 29 日

  • 升级到 libvips v8.13.2 以修复上游的漏洞。

  • 确保 close 事件在基于流的输出的 end 事件之后发生。 #3313

  • 确保 limitInputPixels 构造函数选项使用 uint64。 #3349 @marcosc90

  • 确保自动旋转与加载时缩小和提取一起正常工作(在 0.31.0 中的回归)。 #3352

  • 确保 AVIF 输出始终为 8 位。 #3358

  • 确保灰度图像可以被裁剪(在 0.31.0 中的回归)。 #3386

v0.31.0 - 2022 年 9 月 5 日

  • 停止支持 Node.js 12,现在需要 Node.js >= 14.15.0。

  • GIF 输出现在在可能的情况下重用输入调色板。使用 reoptimise 选项生成新的调色板。

  • 为 WebP 动画帧添加更多控制的 minSizemixed 选项。

  • 移除已弃用的 WebP reductionEffort 和 HEIF speed 选项。使用 effort 控制这些。

  • flipflop 操作现在将在 rotate 操作之前发生。

  • 通过使用直方图改进 normalise 操作。 #200

  • 对于 trim 操作,使用 alpha 和非 alpha 通道的组合边界框。 #2166

  • 为平铺输出添加 Buffer 和 Stream 支持。 #2238

  • format 信息中添加输入 fileSuffix 和输出 alias#2642

  • 重新引入灰度 ICC 配置文件的支持(在 0.30.2 中暂时移除)。 #3114

  • 为 TIFF 输出添加对 WebP 和 PackBits compression 选项的支持。 #3198

  • 确保 OpenSlide 和 FITS 输入与自定义 libvips 一起正常工作。 #3226

  • 确保 trim 操作在会将图像裁剪为无内容时成为无操作。 #3223

  • 公开 vips_text 以创建包含渲染文本的图像。 #3252 @brahima

  • 确保仅解析 withMetadata EXIF 对象拥有的属性。 #3292

  • 扩展 linear 操作以允许使用每个通道的数组。 #3303 @antonmarsden

  • 确保尽可能尊重 rotateresizeextend 操作的顺序。在同一流水线中的先前调用将被忽略时发出警告。 #3319

  • 确保非调色板输出的 PNG bitdepth 可以设置。 #3322

  • trim 添加提供特定背景颜色的选项。 #3332 @mart-jansink

  • 确保在合成之前对调整大小的图像进行 unpremultiply。 #3334

v0.30 - dresser

需要 libvips v8.12.2

v0.30.7 - 2022 年 6 月 22 日

v0.30.6 - 2022 年 5 月 30 日

  • 允许 limitInputPixels 的值大于 32 位。 #3238

  • 确保可以检测到通过 brew 安装的 vips(在 0.30.5 中的回归)。 #3239

v0.30.5 - 2022 年 5 月 23 日

  • 安装:通过环境变量传递 PKG_CONFIG_PATH 而不是替换。 @dwisiswant0

  • 添加对 --libc 标志的支持,以改进跨平台安装。 #3160 @joonamo

  • 允许从文件系统安装预编译的 libvips 二进制文件。 #3196 @ankurparihar

  • 修复 EXIF 方向 2 的旋转-提取问题。 #3218 @jakob0fischl

v0.30.4 - 2022 年 4 月 18 日

  • 通过 failOn 增加对无效图像的敏感性控制,弃用 failOnError(等同于 failOn: 'warning')。

  • 确保 create 输入图像具有正确的位深和颜色空间。 #3139

  • 添加对带有 byteOffsetlengthTypedArray 输入的支持。 #3146 @codepage949

  • 改进尝试渲染大于 32767x32767 的 SVG 输入时的错误消息。 #3167

  • 在 ‘Input file is missing’ 错误消息中添加缺失的文件名。 #3178 @Brodan

v0.30.3 - 2022 年 3 月 14 日

  • 允许更一致地将 sharpen 选项作为对象提供。 #2561

  • 公开 sharpen 操作的 x1y2y3 参数。 #2935

  • 防止在某些合成混合模式下出现双重 unpremultiply(在 0.30.2 中的回归)。 #3118

v0.30.2 - 2022 年 3 月 2 日

  • 改进合成多张图像时的性能和准确性。 #2286

  • 扩展 pkgconfig 搜索路径以支持更广泛的 BSD。 #3106

  • 确保 Windows C++ 运行时被静态链接(在 0.30.0 中的回归)。 #3110 @kleisauke

  • 暂时忽略灰度 ICC 配置文件以解决 lcms 漏洞。 #3112

v0.30.1 - 2022 年 2 月 9 日

  • 允许在同一个实例上使用 toBuffertoFile#3044

  • 跳过已知 libjpeg 四舍五入误差的加载时缩小。 #3066 @kleisauke

  • 确保 withoutReduction 不会干扰 contain/crop/embed。 #3081 @kleisauke

  • 确保仿射插值器被正确终止。 #3083 @kleisauke

v0.30.0 - 2022 年 2 月 1 日

  • 添加对预编译二进制文件的 GIF 输出的支持。

  • 将 Linux ARM64v8 的 glibc 最低要求降低到 2.17。

  • 使用 Subresource Integrity 检查验证预编译二进制文件。

  • 标准化 WebP effort 选项名称,弃用 reductionEffort

  • 标准化 HEIF effort 选项名称,弃用 speed

  • 添加对 IIIF v3 平铺输出的支持。

  • 公开用于调色板化 PNG 输出的 CPU 努力控制。 #2541

  • 改进动画(多页)图像的缩放和提取。 #2789 @kleisauke

  • 公开供应商二进制文件的平台和架构作为 sharp.vendor#2928

  • 确保 16 位 PNG 输出使用正确的位深。 #2958 @gforge

  • 正确发出 duplex streams 的 close 事件。 #2976 @driannaude

  • 公开 unlimited 选项用于 SVG 和 PNG 输入,关闭安全功能。 #2984

  • 添加 withoutReduction 选项到缩放操作。 #3006 @christopherbradleybanks

  • 添加 resolutionUnit 作为 TIFF 选项并在元数据中公开。 #3023 @ompal-sisodiya

  • 确保 rotate-then-extract 与 EXIF 镜像一起正常工作。 #3024

v0.29 - circle

需要 libvips v8.11.3

v0.29.3 - 2021 年 11 月 14 日

  • 确保在包含图像缩放到 1px 时的正确尺寸。 #2951

  • withMetadata 提供的 density 推断 TIFF xres/yres#2952 @mbklein

v0.29.2 - 2021 年 10 月 21 日

  • 添加 timeout 函数以限制处理时间。

  • 确保 sharp.versions 从供应商 libvips 中填充。

  • 从单页图像中移除动画属性。 #2890

  • 允许使用 ‘tif’ 选择 TIFF 输出。 #2893 @erf

  • 改进 Windows 上的版本冲突错误消息。 #2918 @dkrnl

  • 在检测到无效二进制文件时抛出错误而不是退出。 #2931

v0.29.1 - 2021 年 9 月 7 日

  • 添加 lightness 选项到 modulate 操作。 #2846

  • 确保根据颜色数量设置正确的 PNG bitdepth。 #2855

  • 确保在合成时背景始终为 premultiplied。 #2858

  • 确保具有 P3 配置文件的图像保留全色域。 #2862

  • 添加对使用 OpenJPEG 编译的 libvips 的支持。 #2868

  • 从 AVIF 输出中移除不受支持的动画属性。 #2870

  • 在比较输入/输出文件名之前解析路径。 #2878 @rexxars

  • 允许在 HEIF 编码中使用速度 9(最快)。 #2879 @rexxars

v0.29.0 - 2021 年 8 月 17 日

  • 停止支持 Node.js 10,现在需要 Node.js >= 12.13.0。

  • 添加 PNG 和 GIF 图像元数据的 background 属性。

  • 添加 HEIF 图像元数据的 compression 属性。 #2504

  • AVIF 编码现在默认使用 4:4:4 色度子采样。 #2562

  • 允许在同一个 node_modules 安装树中使用多个平台-架构二进制文件。 #2575

  • 当使用 extractChannel 时,默认使用单通道 b-w 空间。 #2658

  • 允许安装目录中包含空格(在 v0.26.0 中的回归)。 #2777

  • 添加 pipelineColourspace 操作以设置处理空间。 #2704 @Daiz

  • 允许在原始输入和输出时设置位深。 #2762 @mart-jansink

  • 允许 negate 仅作用于非 alpha 通道。 #2808 @rexxars

v0.28 - bijou

需要 libvips v8.10.6

v0.28.3 - 2021 年 5 月 24 日

  • 在调用 node-gyp 之前确保存在 libvips,无论是供应商的还是全局的。

  • 跳过多页 WebP 的加载时缩小。 #2714

  • 添加对比度限制自适应直方图均衡化(CLAHE)操作。 #2726 @baparham

v0.28.2 - 2021 年 5 月 10 日

  • 允许 withMetadata 设置 density#967

  • 在一个维度小于 4px 时跳过加载时缩小。 #2653

  • 允许转义代理凭据。 #2664 @msalettes

  • 添加 premultiplied 标志用于原始像素数据输入。 #2685 @mnutt

  • 检测空输入并抛出有用的错误。 #2687 @JakobJingleheimer

  • 添加安装时标志以跳过版本兼容性检查。 #2692 @xemle

v0.28.1 - 2021 年 4 月 5 日

  • 确保所有安装错误都带有更明显的前缀。

  • 允许 withMetadata 设置和更新 EXIF 元数据。 #650

  • 添加对 OME-TIFF 子图像文件目录(subIFD)的支持。 #2557

  • 允许 ensureAlpha 设置 alpha 透明度级别。 #2634

v0.28.0 - 2021 年 3 月 29 日

  • 预编译二进制文件现在包括 mozjpeg 和 libimagequant(BSD 2-Clause)。

  • 预编译二进制文件将 AVIF 支持限制为最常见的 8 位深度。

  • 添加 jpeg 方法的 mozjpeg 选项,设置 mozjpeg 默认值。

  • 将默认 PNG compressionLevel 减少到更常用的 6。

  • 在使用默认内存分配器的 glibc-based Linux 上减少并发,以帮助防止碎片化。

  • 将 extend 操作的缺失边缘属性默认为零。 #2578

  • 确保合成不会裁剪顶部和左侧偏移。 #2594 @SHG42

  • 改进安装时网络故障的错误处理。 #2608 @abradley

  • 确保 @id 属性可以为 IIIF 平铺输出设置。 #2612 @edsilv

  • 确保合成在居中重力下复制正确数量的平铺。 #2626

v0.27 - avif

需要 libvips v8.10.5

v0.27.2 - 2021 年 2 月 22 日

  • macOS:防止在 Rosetta x64 仿真下使用全局安装的 ARM64 libvips。 #2460

  • Linux (musl):防止在 musl >= 1.2.0 时使用预编译的 linuxmusl-x64 二进制文件。 #2570

  • 通过使用 libvips 的 has_alpha 检测改进 16 位灰度+alpha 支持。 #2569

  • 允许 toFormat 使用非小写扩展名。 #2581 @florian-busch

  • 允许 recomb 操作使用单通道输入。 #2584

v0.27.1 - 2021 年 1 月 27 日

  • 确保在使用浮点预测器时进行类型转换。 #2502 @randyridge

  • 添加对 Uint8Array 和 Uint8ClampedArray 输入的支持。 #2511 @leon

  • 反转:确保所有平台都使用 fontconfig 进行字体渲染。 #2515

  • 公开 libvips gaussnoise 操作以允许创建高斯噪声。 #2527 @alza54

v0.27.0 - 2020 年 12 月 22 日

  • 添加对预编译二进制文件的 AVIF 支持。

  • 移除 heif 输出的实验性状态,现在默认以 AVIF 为中心。

  • 允许合成操作使用负的顶部/左侧偏移。 #2391 @CurosMJ

  • 确保所有平台都使用 fontconfig 进行字体渲染。 #2399

v0.26 - zoom

需要 libvips v8.10.0

v0.26.3 - 2020 年 11 月 16 日

v0.26.2 - 2020 年 10 月 14 日

  • 添加对 EXR 输入的支持。需要使用 OpenEXR 编译的 libvips。 #698

  • 确保支持 yarn v2。 #2379 @jalovatt

  • 添加平铺输出的中心/居中选项。 #2397 @beig

v0.26.1 - 2020 年 9 月 20 日

  • 确保在验证多页图像尺寸时正确的 pageHeight。 #2343 @derom

  • 允许输入密度范围达到 100000 DPI。 #2348 @stefanprobst

  • 确保动画相关的属性可以用于基于流的输入。 #2369 @AcrylicShrimp

  • 确保 stats 可以计算 1x1 输入。 #2372

  • 确保动画 GIF 输出经过优化。 #2376

v0.26.0 - 2020 年 8 月 25 日

  • 预编译的 libvips 二进制文件现在是静态链接并使用 Brotli 压缩,需要 Node.js 10.16.0+。

  • TIFF 输出的 squashbitdepth 替换,以减少到 1、2 或 4 位。

  • JPEG 输出的 quality >= 90 不再自动将 chromaSubsampling 设置为 4:4:4

  • 添加图像 stats 中的最主导颜色。 #640

  • 添加对动画 GIF(需要 *magick)和 WebP 输出的支持。 #2012 @deftomat

  • 添加对 libvips ImageMagick v7 加载器的支持。 #2258 @vouillon

  • 允许通过 *magick 使用多页输入。 #2259 @vouillon

  • 添加 withMetadata 对自定义 ICC 配置文件的支持。 #2271 @roborourke

  • 确保在使用 Electron 时,ARM 的预编译二进制文件默认使用 v7。 #2292 @diegodev3

v0.25 - yield

需要 libvips v8.9.1

v0.25.4 - 2020 年 6 月 12 日

  • 允许在版本附加时覆盖 libvips 二进制文件位置。 #2217 @malice00

  • 启用 PNG 调色板,当设置质量、颜色、颜色或抖动时。 #2226 @romaleev

  • 添加 level 构造函数选项以使用多级图像的特定级别。 公开多级图像的 levels 元数据。 #2222

  • 添加对 extractChannel 操作的命名 alpha 通道的支持。 #2138

  • 添加实验性的 sharpness 计算到 stats() 响应。 #2251

  • 发出 warning 事件以处理非关键的处理问题。 #2032

v0.25.3 - 2020 年 5 月 17 日

  • 确保 libvips 仅初始化一次,提高 worker 线程安全性。 #2143

  • 确保 npm 平台标志在复制 DLL 时被尊重。 #2188 @dimadeveatii

  • 允许解析带有内联图像的 SVG 输入。 #2195

v0.25.2 - 2020 年 3 月 20 日

  • 为 Linux ARM64v8 提供预编译二进制文件。

  • 添加 IIIF 布局支持到平铺输出。 #2098 @edsilv

  • 确保输入选项被一致且正确地检测。 #2118

  • 确保 N-API 预编译二进制文件在 RHEL7 及其衍生版本上工作。 #2119

  • 确保 AsyncWorker 选项被持久化。 #2130

v0.25.1 - 2020 年 3 月 7 日

  • 确保预编译二进制文件根据 N-API 版本被获取。 #2117

v0.25.0 - 2020 年 3 月 7 日

  • 移除之前在 v0.24.0 中弃用的 limitInputPixelssequentialRead

  • 将内部迁移到 N-API。 #1282

  • 添加对 32 位 Windows 的支持。 #2088

  • 确保 rotate-then-trim 操作的正确顺序。 #2087

  • 确保 composite 接受 limitInputPixelssequentialRead 输入选项。 #2099

v0.24 - “wit

需要 libvips v8.9.0。

v0.24.1 - 2020 年 2 月 15 日

  • 防止在基于 EXIF 的旋转操作中使用 sequentialRead。 #2042

  • 确保 RGBA LZW TIFF 返回正确的通道数量。 #2064

v0.24.0 - 2020 年 1 月 16 日

  • 停止支持 Node.js 8。 #1910

  • 停止支持在提供选项的情况下使用未定义的输入。 #1768

  • limitInputPixelssequentialRead 移到输入选项,弃用同名函数。

  • 公开动画图像的 delayloop 元数据。 #1905

  • 确保 16 位、2 通道 PNG 输入带有 ICC 配置文件的正确颜色输出。 #2013

  • 防止在旋转操作中使用 sequentialRead。 #2016

  • 正确绑定在使用 withoutEnlargement 时的最大宽度和高度值。 #2024 @BrychanOdlum

  • 添加对带有 16 位 RGB 配置文件的输入的支持。 #2037

v0.23 - “vision

需要 libvips v8.8.1。

v0.23.4 - 2019 年 12 月 5 日

  • 在使用 Node.js v13.2.0+ 时处理零长度 Buffer 对象。

  • 公开原始 TIFFTAG_PHOTOSHOP 元数据。 #1600

  • 通过在更新元数据时使用写时复制改进线程安全性。 #1986

v0.23.3 - 2019 年 11 月 17 日

  • 确保 trim 操作支持包含在 alpha 通道中的图像。 #1597

  • 确保平铺 overlap 选项按预期工作。 #1921 @rustyguts

  • 允许在 FreeBSD 及其变体上进行编译(自 v0.23.0 以来已损坏) #1952 @pouya-eghbali

  • 确保 modulate 和其他基于颜色的操作可以共存。 #1958

v0.23.2 - 2019 年 10 月 28 日

v0.23.1 - 2019 年 9 月 26 日

  • 确保 sharp.format.vips 存在且正确(仅限文件系统)。 #1813

  • 确保在 resize 中提供无效的 widthheight 选项时抛出错误。 #1817

  • 允许在 toFormat 中使用 ‘heic’ 和 ‘heif’ 标识符。 #1834 @jaubourg

  • 添加 premultiplied 选项到 composite 操作。 #1835 @Andargor

  • 允许在不同的 toBuffer 选项下重用实例。 #1860 @RaboliotTheGrey

  • 确保在尝试 trim 操作之前图像至少为 3x3 像素。

v0.23.0 - 2019 年 7 月 29 日

  • 移除之前在 v0.22.0 中弃用的 overlayWith

  • 添加对 HEIF 图像的实验性支持。需要使用 libheif 编译的 libvips。 #1105

  • 公开 libwebp 的 smartSubsamplereductionEffort 选项。 #1545

  • 添加对 Worker Threads 的实验性支持。 #1558

  • 在需要时使用 libvips 内置的 CMYK 和 sRGB 配置文件。 #1619

  • 停止支持 Node.js 版本 6 和 11。 #1674

  • 公开平铺输出的 skipBlanks 选项。 #1687 @RaboliotTheGrey

  • 允许在基于流的输入中使用 failOnError 选项。 #1691

  • 修复非 90 角度的旋转/提取顺序。 #1755 @iovdin

v0.22 - “uptake

需要 libvips v8.7.4。

v0.22.1 - 2019 年 4 月 25 日

v0.22.0 - 2019 年 3 月 18 日

  • 移除之前在 v0.21.0 中弃用的函数: backgroundcropembedignoreAspectRatiomaxminwithoutEnlargement

  • 添加支持多个图像和混合模式的 composite 操作;弃用 overlayWith#728

  • 添加对多页输入的 pages 输入选项的支持。 #1566

  • 允许基于流的原始像素数据输入。 #1579

  • 添加对 GIF 和 PDF 的 page 输入选项的支持。 #1595 @ramiel

v0.21 - “teeth

需要 libvips v8.7.0。

v0.21.3 - 2019 年 1 月 19 日

  • 输入图像解码现在快速失败,可以通过设置 failOnError 来更改此行为。

  • 失败的基于文件系统的输入现在将缺少文件和无效格式错误分开。 #1542

v0.21.2 - 2019 年 1 月 13 日

  • 确保除非使用 withMetadata,否则 PNG 输出中所有元数据都被移除。

  • 确保在调整大小后最短边至少为一个像素。 #1003

  • 添加 ensureAlpha 操作以在缺失时添加 alpha 通道。 #1153

  • 公开多页输入图像的 pagespageHeight 元数据。 #1205

  • 公开需要 libimagequant 的 PNG 输出选项。 #1484

  • 公开无效输入的底层错误消息。 #1505

  • 防止传递给 jpeg 的选项被修改。 #1516

  • 确保在输出链中正确应用强制输出格式。 #1528

v0.21.1 - 2018 年 12 月 7 日

  • 安装:支持 sharp_dist_base_url npm 配置,类似于现有的 SHARP_DIST_BASE_URL#1422 @SethWen

  • 确保原始、灰度输出的 channel 元数据正确。 #1425

  • 添加对图像缩减的 “mitchell” 内核的支持。 #1438 @Daiz

  • 允许分别设置伽马编码和解码的参数。 #1439 @Daiz

  • 使用 Object.assign 构建原型以允许压缩。 #1475 @jaubourg

  • 公开 libvips 的重组矩阵操作。 #1477 @fromkeith

  • 公开 libvips 的金字塔/平铺选项用于 TIFF 输出。 #1483 @mbklein

v0.21.0 - 2018 年 10 月 4 日

  • 弃用以下与调整大小相关的函数: cropembedignoreAspectRatiomaxminwithoutEnlargement。 现在可以通过传递给 resize 函数的选项来访问这些函数。 例如: embed('north') 现在是 resize(width, height, { fit: 'contain', position: 'north' })crop('attention') 现在是 resize(width, height, { fit: 'cover', position: 'attention' })max().withoutEnlargement() 现在是 resize(width, height, { fit: 'inside', withoutEnlargement: true })相关议题 #1135

  • 弃用 background 函数。 每个操作的 background 选项已添加到 resizeextendflatten 操作中。 相关议题 #1392

  • metadata 响应中添加 size(仅限 Stream 和 Buffer 输入)。 相关议题 #695

  • 从自定义的裁剪操作切换到 vips_find_trim相关议题 #914

  • metadata 响应中添加 chromaSubsamplingisProgressive 属性。 相关议题 #1186

  • 停止支持 Node 4。 相关议题 #1212

  • 默认启用 SIMD 卷积。 相关议题 #1213

  • 为基于 musl 的 Linux 添加实验性的预编译二进制文件。 相关议题 #1379

  • 通过 vips_rotate 支持任意旋转角度。 相关议题 #1385 作者:freezy

v0.20 - “prebuild

需要 libvips v8.6.1。

v0.20.8 - 2018 年 9 月 5 日

v0.20.7 - 2018 年 8 月 21 日

  • 如果重命名操作在安装过程中失败,则使用 copy+unlink。 相关议题 #1345

v0.20.6 - 2018 年 8 月 20 日

v0.20.5 - 2018 年 6 月 27 日

v0.20.4 - 2018 年 6 月 20 日

v0.20.3 - 2018 年 5 月 29 日

v0.20.2 - 2018 年 4 月 28 日

v0.20.1 - 2018 年 3 月 17 日

v0.20.0 - 2018 年 3 月 5 日

  • 添加对常见平台上预编译 sharp 二进制文件的支持。 相关议题 #186

v0.19 - “suit

需要 libvips v8.6.1。

v0.19.1 - 2018 年 2 月 24 日

v0.19.0 - 2018 年 1 月 11 日

v0.18 - “ridge

需要 libvips v8.5.5。

v0.18.4 - 2017 年 9 月 18 日

v0.18.3 - 2017 年 9 月 13 日

v0.18.2 - 2017 年 7 月 1 日

v0.18.1 - 2017 年 5 月 30 日

v0.18.0 - 2017 年 5 月 30 日

v0.17 - “quill

需要 libvips v8.4.2。

v0.17.3 - 2017 年 4 月 1 日

v0.17.2 - 2017 年 2 月 11 日

v0.17.1 - 2017 年 1 月 15 日

v0.17.0 - 2016 年 12 月 11 日

  • 停止支持低于 v4 的 Node 版本。

  • 弃用以下输出格式 “option” 函数: qualityprogressivecompressionLevelwithoutAdaptiveFilteringwithoutChromaSubsamplingtrellisQuantisationtrellisQuantizationovershootDeringingoptimiseScansoptimizeScans。 现在可以通过输出格式函数访问这些函数,例如 quality(n) 现在是 jpeg({quality: n}) 和/或 webp({quality: n})

  • 如果未指定其他格式,自动将 GIF 和 SVG 输入转换为 PNG 输出。

  • 公开 libvips 的 “centre” 调整大小选项,以模仿 *magick 的 +0.5px 约定。 相关议题 #568

  • 确保支持嵌入在 SVG 中的 base64 PNG 和 JPEG 图像。 相关议题 #601 作者:dynamite-ready

  • 确保 premultiply 操作在 box filter 缩小之前发生。 相关议题 #605 作者:CmdrShepardsPie 作者:teroparvinen

  • 添加对 PNG 和 WebP 平铺输出格式的支持(除了 JPEG)。 相关议题 #622 作者:ppaskaris

  • 允许使用 extend 与灰度输入。 相关议题 #623 作者:ppaskaris

  • 允许非 RGB 输入嵌入/扩展到带有 alpha 通道的背景。 相关议题 #646 作者:DaGaMs

v0.16 - “pencil

需要 libvips v8.3.3。

v0.16.2 - 2016 年 10 月 22 日

v0.16.1 - 2016 年 10 月 13 日

v0.16.0 - 2016 年 8 月 18 日

v0.15 - “outfit

需要 libvips v8.3.1。

v0.15.1 - 2016 年 7 月 12 日

v0.15.0 - 2016 年 5 月 21 日

  • 使用 libvips 的新 Lanczos 3 内核作为图像缩减的默认内核。 弃用 interpolateWith 方法,现在作为 resize 选项提供。 相关议题 #310 作者:jcupitt

  • 利用 libvips v8.3 的功能。 添加对 libvips 的新 GIF 和 SVG 加载器的支持。 预编译二进制文件现在包括 giflib 和 librsvg,排除 *magick。 对 WebP 输入使用 shrink-on-load。 修改现有的 sharpen API 以接受 sigma 并提高精度。 相关议题 #369

  • 移除不必要的 (un)premultiply 操作,当不进行调整大小/合成时。 相关议题 #413 作者:jardakotesovec

v0.14 - “needle

需要 libvips v8.2.3。

v0.14.1 - 2016 年 4 月 16 日

v0.14.0 - 2016 年 4 月 2 日

v0.13 - “mind

需要 libvips v8.2.2。

v0.13.1 - 2016 年 2 月 27 日

v0.13.0 - 2016 年 2 月 15 日

v0.12 - “look

需要 libvips v8.2.0。

v0.12.2 - 2016 年 1 月 16 日

v0.12.1 - 2015 年 12 月 12 日

v0.12.0 - 2015 年 11 月 23 日

v0.11 - “knife

v0.11.4 - 2015 年 11 月 5 日

v0.11.3 - 2015 年 9 月 8 日

v0.11.2 - 2015 年 8 月 28 日

v0.11.1 - 2015 年 8 月 12 日

v0.11.0 - 2015 年 7 月 15 日

v0.10 - “judgment

v0.10.1 - 2015 年 6 月 1 日

v0.10.0 - 2015 年 4 月 23 日