C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 144 - Дальше Читаем растр с диска / MFC шаг за шагом / Visual C++

Шаг 144 - Дальше Читаем растр с диска

Но то, что мы сделали в прошлый раз еще не все. Нам теперь надо завести несколько переменных и вычислить их положение в растре.

class CDib  
{
	.....
	LPBITMAPINFOHEADER lpHeader;
	RGBQUAD* lpRGB;
	BYTE* lpBMP;
	.......
};
А теперь код для вычисления этих переменных.
void CDib::LoadFile(CString filename)
{
	........
		//  NEW !!!
		lpHeader=(LPBITMAPINFOHEADER)ptrBmp;
		lpRGB = (RGBQUAD*)(ptrBmp+lpHeader->biSize); 
		int num=GetNumColor();
		DWORD sizetable=num*sizeof(RGBQUAD);
		lpBMP=ptrBmp+lpHeader->biSize+sizetable; 
	}
}
Мы объявили процедуру для вычисления количества цветов.
class CDib  
{
	.....
	UINT GetNumColor();

};
И её реализация.
UINT CDib::GetNumColor()
{
	if ((lpHeader->biClrUsed == 0 ) && (lpHeader->biClrUsed <9))
		return (1biClrUsed; 
}

Вот давайте посмотрим на наши деяния. Мы объявили новую переменную, как указатель на структуру информации о растре. Сразу за ней начинается таблица цветов. Указатель на неё мы и вычисляем. Теперь надо вычислить размер таблицы. Для этого нужно количество цветов. Если мы умножим количество цветов на размер одной записи и сложим с началом записей, то получим указатель уже на конкретные данные.


| |
Автор Каев Артем.
[AD]