如何使用 Sharp.js 转换 png 纯黑白(无灰度)

How to convert png pure black & white (no greyscale) with Sharp.js

我需要将有颜色的 png 转换为只有黑白的 png。我目前正在处理图像 Sharp.js。但是我一直没能找到生成单色图像的方法。

我找到了一个灰度选项。

const sharp = require('sharp');

sharp('color-image.png')
    .toGreyscale()
    .toFile('b-w-image.png')
    .then(() => {
        console.log('Huzzah!')
});

但这不能满足我的需要。我正在寻找没有灰色阴影的纯黑白图像。

我没有在文档中找到任何允许您指定灰度级别以仅允许 B/W 图像的内容。

有没有办法把图片变成纯黑白的?

这将为您提供具有两种颜色的图像。使用 linear 选项增加对比度。

const sharp = require('sharp');

sharp('ben.png')
    .greyscale() // make it greyscale
    .linear(1.5, 0) // increase the contrast
    .png({colors:2}) // reduce image to two colors
    .toFile('b-w-image.png')
    .then(() => {
        console.log('Huzzah!')
});