Я обновляю плагин для Paint.net, который я сделал несколько месяцев назад, он называется Simulate Color Depth, и он уменьшает количество цветов в изображении до выбранного BPP и долгое время включал в себя дизеринг, но НИКОГДА не заказывал дизеринг, и я подумал, что это будет хорошим дополнением, поэтому я начал искать в интернете что-то полезное, я попал на эту вики-страницу здесь http://en.wikipedia.org/wiki/Ordered_dithering, и попытался сделать так, как написано в псевдокод
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);
}
}
но результат слишком яркий, поэтому я решил проверить страницу вики еще раз, и затем я вижу, что справа от карты порогов есть "1/65", что заставило меня задуматься о распространении обеих ошибок (да, я знаю, , странно, да?) и деление значения, которое я получаю из bayer8x8[x % 8, y % 8]
на 65, а затем умножение значения на цветовые каналы, но либо результаты были грязными, либо еще слишком яркими (насколько я помню), но результаты были совсем не похожи я видел в другом месте, слишком яркий, слишком высокий контраст или слишком грязный, и я не нашел ничего действительно полезного при поиске в Интернете, так кто-нибудь знает, как я могу заставить этот байерский сглаживание работать должным образом?
Заранее спасибо, Печенье