Работа с растровыми изображениями

Листинг 17.10

void OnTestCHWND hWnd. int (*Test )(HDC ,HDC .int .int .int)) {
static int tmp;
char szRes[255];
_int64 Start-HightTimeO ;

for( int t-256; t>-0; t-t-1) //Цикл проявления заставки {

if(Tau)

//Если период запуска функции обработки не равен нулю, то после каждого ее //вызова в заголовок окна выводится время работы. {

Tï meCapt i on(hWnd. Врем я .Test(hdcMemS.hdcMemD.t.5.10).&Ti meP roc): tmp - Tau-TimeProc/1000: Delay(tmp): //Пауза tmp миллисекунд. }

else Test(hdcMemS.hdcMemD.t.5.10); //Вызов без показа времени работы. }

for( t - 0; t<-256; t-t+1) //Цикл гашения заставки. {

Test(hdcMemS.hdcMemD.t.5.10); //При гашении время не отображается

if(Tau) Delay(tmp);
}

int Res - ResHightTime(SpeedCPU.&Start); //Затраты на 512 запусков sprintf(szRes."Общее время fcli микросекунд".Res); SetWi ndowText(hWnd.szRes); }

Разные варианты обработки вызываются при помощи вызовов функций 0nTest(hWnd. DirectBitMapAss), OnTest(hWnd. Di rectBi tMapC) и им подобных.

Выбрав предварительно в меню нулевой такт Tau, можно получить суммарное время 512 выполнений функции обработки и оценить разницу в скорости визуально.

Прямой доступ к битовой карте может применяться для изменения контрастности картинки, получения качественного изображения при ее сжатии и растяжении. Для этого часто используют вычисление цвета принимающего фрагмента окна как взвешенную сумму цвета точки источника и ее ближайших соседей. Весовые коэффициенты суммирования при этом задаются так называемой матрицей свертки С - квадратной таблицей, сумма элементов Cxi которой обычно равна единице. Центральный элемент матрицы соответствует точке источника, а остальные умножаются на коды цвета точек, соседних с ней по вертикали, горизонтали и диагоналям. В библиотеке OpenGL предусмотрены стандартные средства работы с матрицей свертки, например функция gl Convoi uti onFi 1 ter2D( ). Эта библиотека позволяет задавать размер матрицы, особенности ее применения на границах изображения, компоненты цвета, к которым применяется свертка.


⇐ Предыдущая| |Следующая ⇒