2

拿两个。

在我的 nodejs 应用程序中,我需要提取 JPEG 图像的矩形部分。我有坐标(x、y、宽度、高度),我只需要裁剪。

有许多库可以做到这一点(sharp、jimp、lwip 等),但它们都遵循 decompress-modify-recompress 模式。

由于这是一个服务器应用程序,我可能需要为每秒多张图片执行此操作,因此我希望使其尽可能高性能。

幸运的是,我不需要精确的裁剪。如果结果大几个像素也没问题。因此,我可以在正确对齐的坐标上使用无损 JPEG 提取1 。它既可以节省 CPU 周期、内存,又可以避免任何潜在的质量损失。

我知道这是可以做到的,因为已经有工具可以做到这一点——我找不到用 Javascript 编写的工具。我还想避免使用 CLI 工具,因为我怀疑写入磁盘/调用工具/收集结果的开销将远远大于使用可用库在内存中进行重新压缩舞蹈(但是,如果您对此有争论方法,我也会接受它作为答案)。

那么-如何在Javascript(node.js,服务器端)中无损裁剪JPEG图像(在正确对齐的坐标上)?输出当然是另一个 JPEG 图像。

1请注意,在这种情况下,“无损”并不意味着“无损 JPEG”。它的意思是“无损裁剪”,即提取 JPEG 的一部分而不对其进行解压缩/重新压缩。这是 JPEG 上可能的少数无损操作之一

4

0 回答 0