Понижение глубины цвета
- From
- Sergey Mudry ()
- To
- Vladimir Siltchenko
- Date
- 2002-11-18T10:54:51Z
- Area
- RU.ALGORITHMS
From: "Sergey Mudry" <upx@nc.ru>
Hello, Vladimir!
You wrote to All on Fri, 15 Nov 2002 23:30:54 +0300:
VS> Первое, что пришло в голову: все возможные цвета разбиваются на 256
VS> групп. В каждой группе вычисляется среднее арифметическое по всем
VS> цветам из картинки, в нее входящим. После проходимся по картинке и
VS> кажому цвету назначаем индекс из ранее составленного 256`ти байтного
VS> массива.
Добавь дизер.
После того как назначил индекс, вычисляешь ошибку цвета: от оригинальных
R,G,B вычитаешь назначенные по таблице r,g,b, получаешь ошибку: r'=R-g,
g'=G-g, b'=B-b,
и затем полученные r',g',b' прибавляешь к следующему пикселу.
256-цветную палитру можно брать фиксированную.
VS> Результат, мягко говоря, не очень. :)
Еще бы!
VS> Подскажите, плз, анормально работающий алгоритм.
В твоем случае дизер работает неплохо (если только разрешение экрана не
320x200 ;)
Если надо привести к двум цветам - нужен более другой алгоритм.
With best regards, Serg, aka upx@nc.ru, upx@ukr.net
--- ifmail v.2.15dev5
* Origin: Donbass Internet Center DIPT (2:5020/400)