ковырялся в гугле и не нашел ничего похожего на то, что я ищу.так что же мне после?ну, две вещи:
во-первых, я ищу алгоритм / псевдокод / технические документы, чтобы определить наиболее подходящий цвет для набора данных r, g, b из имассив из 256 RGB-кортежей.
Во-вторых, я ищу алгоритм / псевдокод / документы для перекрашивания 8-битного изображения палитры (используя вышеупомянутую палитру RGB) в любойзаданный оттенок / насыщенность или изменение канала r, g, b.также было бы неплохо, если бы было возможно добавить исправление для гамма и артефактных пикселей в раскраске.
любой получил какие-либо подсказки / указатели / подсказки относительно того, где я мог бы найти такиевещь (я знаю, что они должны существовать, иначе некоторые функции фотошопов не будут)
ОБНОВЛЕНИЕ: вот базовое евклидово расстояние RGB до искателя индекса палитры:
uint_8 __stdcall GFXUTIL_GetNearestPaletteIndex(const uint_8* pPalette, size_t nSize, uint_8 nRed, uint_8 nGreen, uint_8 nBlue)
{
if(pPalette == NULL)
return 0;
int nDistance = -1;
size_t nIndex = 0, nFoundIndex = 0;
while(nIndex < nSize)
{
int nDistRed = pPalette[0] - nRed;
int nDistGreen = pPalette[1] - nGreen;
int nDistBlue = pPalette[2] - nBlue;
int nCurrentDistance = (nDistRed * nDistRed) + (nDistGreen * nDistGreen) + (nDistBlue * nDistBlue);
if(nCurrentDistance < nDistance)
{
nFoundIndex = nIndex;
nDistance = nCurrentDistance;
}
nIndex++;
pPalette += sizeof(uint_32);
}
return nFoundIndex;
}