0

我可以创建一个新的图像对象并设置像素颜色,但生成的图像只是黑色而不是预期的灰色。对于位深度,我是否必须只包含一个具有 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');
4

0 回答 0