我可以创建一个新的图像对象并设置像素颜色,但生成的图像只是黑色而不是预期的灰色。对于位深度,我是否必须只包含一个具有 256 个元素的调色板,它将被保存为位深度 8?我可能应该打开保存的图像并检查调色板是否在那里。
import jimp from 'jimp';
const newImage = new jimp(149, 101);
for ( let x = 0; x < newImage.bitmap.width; x++ ) {
for ( let y = 0; y < newImage.bitmap.height; y++ ) {
newImage.setPixelColor(jimp.rgbaToInt(50, 50, 50, 0), x, y);
}
}
// can see that the pixels have been set
console.log(newImage);
// attempting to set a custom color palette.
// this seems to not do anything. (is it ok to just have one element?)
newImage.bitmap.palette = [
{
red: 50,
green: 50,
blue: 50,
quad: 0
}
]
// png (perhaps not an issue)
console.log(newImage.getExtension());
// writes the file but it's all black. Expected some shade of grey.
await newImage.writeAsync('new.bmp');