Node.js 转换 HEIC 文件

Bra*_*n B 3 image-processing node.js

我需要一种使用 Node.js 将照片从 HEIC 格式转换为 jpg 或 png 的方法。我已经搜索过,似乎找不到任何有效的东西。

Bru*_*obo 5

npm -i heic-convert

const convert = require('heic-convert');
async function heicToJpg(file, output) {
    console.log(file, output);
    const inputBuffer = await promisify(fs.readFile)(file);
    const outputBuffer = convert({
        buffer: inputBuffer, // the HEIC file buffer
        format: 'PNG', // output format
    });
    return promisify(fs.writeFile)(output, outputBuffer);
}
Run Code Online (Sandbox Code Playgroud)


Bra*_*n B -27

更改文件名足以将 HEIC 查看为 jpg:

const fileName = photo.fileName.split(".")[0] + ".jpg";

  • 天哪,不!请不要这样做。这根本不够。您可能很幸运,您的观众可以处理这个问题。但不可能使用这样的文件。任何其他程序可能会将其报告为损坏的文件。 (11认同)
  • @BrandonB 它之所以有效,是因为图像(以及其他文件类型通常)在前几个字节中编码了类型。您的图像阅读器正在使用该数据来确定文件类型(而不是文件扩展名)。 (6认同)