Дипломная работа: Разработка программного обеспечения для фильтрации растровых изображений
class CDotFilter: public CFilter
{
protected:
//Таблицы преобразования для компонентов цвета
BYTE BGRTransTable[3][256];
public:
//Метод преобразования пиксела
BOOL TransformPix(LONG x, LONG y);};
Данными этого класса являются три таблицы преобразования компонентов RGB цвета.
Для точечного фильтра переопределён метод . Реализация метода приведена в листинге 3.7.2
Листинг 3.7.2 – Метод CDotFilter:: TransformPix (). Файл Filter.cpp
BOOL CDotFilter::TransformPix(LONG x, LONG y)
{BYTE *pDPix=NULL, *pSPix=NULL;
// Источник необходим
if(m_pSourceBM==NULL)
return FALSE;
//Если приёмник не задан, то преобразование помещаем в источник
if(m_pDestBM==NULL)
m_pDestBM=m_pSourceBM;
// Получаем указатели на пикселы в источнике и приёмнике
if((pDPix=m_pDestBM->GetPixPtr(x, y))==NULL ||
(pSPix=m_pSourceBM->GetPixPtr(x, y))==NULL)
return FALSE;
// Преобразование. Порядок BGR
*pDPix=BGRTransTable[0][*pSPix];
*(pDPix+1)=BGRTransTable[1][*(pSPix+1)];
*(pDPix+2)=BGRTransTable[2][*(pSPix+2)];
return TRUE; };
Хотя формат 24-битового цвета называют RGB, в файле формата BMP компоненты цвета хранятся в обратном порядке (Порядок BGR).