数か月前に作成した Paint.net のプラグインを更新しています。これは Simulate Color Depth と呼ばれ、画像の色数を選択した BPP に減らします。長い間ディザリングが含まれていましたが、ディザリングを注文したことはありません。それがあればいいと思ったので、何か役に立つものをインターネットで検索し始めました。疑似コードに書かれている通りにする
for (int y = 0; x < image.Height; y++)
{
for (int x = 0; x < image.Width; x++)
{
Color color = image.GetPixel(x, y);
color.R = color.R + bayer8x8[x % 8, y % 8];
color.G = color.G + bayer8x8[x % 8, y % 8];
color.B = color.B + bayer8x8[x % 8, y % 8];
image.SetPixel(x, y, GetClosestColor(color, bitdepth);
}
}
しかし、結果が明るすぎるので、wikiページをもう一度チェックすることにしました。すると、しきい値マップの右側に「1/65」があり、両方のエラー拡散を考えさせられました(はい、知っています、変ですね?) 取得した値bayer8x8[x % 8, y % 8]
を 65 で割り、その値をカラー チャネルで乗算しますが、結果が乱雑であるか、またはまだ明るすぎます (覚えているように) が、結果は他の場所で見たようなものではありませんでした。明るすぎる、コントラストが高すぎる、または乱雑で、インターネットを検索しても本当に役立つものは見つかりませんでした。このベイヤーディザリングを正しく機能させる方法を知っている人はいますか?
前もってありがとう、クッキー