WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Bitmaps

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Bitmaps
MrSergei опубликован 07-02-2002 04:41 MSK   Click Here to See the Profile for MrSergei   Click Here to Email MrSergei  
Известено: BITMAPINFO и весь массив пикселей, т.е. есть полноценный битмап, как его сохранить в битмап-файл, который, к примеру, будет состоять из верхней половины битмапа? Т.е. зная битмап, как сохранить в битмап-файл любую его часть по выбору?
x опубликован 07-02-2002 05:51 MSK     Click Here to See the Profile for x  Click Here to Email x     
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; //тип файла (для битового образа - BM)
DWORD bfSize; //размер файла в DWORD
WORD bfReserved1; //не используется
WORD bfReserved2; //не используется
DWORD bfOffBits; //смещение данных битового образа от заголовка в байтах
}BITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER
{
DWORD biSize; //число байт, занимаемых структурой BITMAPINFOHEADER
DWORD biWidth; //ширина битового образа в пикселах
DWORD biHeight; //высота битового образа в пикселах
WORD biPlanes; //число битовых плоскостей устройства
WORD biBitCount; //число битов на пиксель
DWORD biCompression; //тип сжатия
DWORD biSizeImage; //размер картинки в байтах
DWORD biXPelsPerMeter;//горизонтальное разрешение устройства,пиксел/м
DWORD biYPelPerMeter; //вертикальное разрешение устройства,пиксел/м
DWORD biClrUsed; //число используемых цветов
DWORD biClrImportant; //число "важных" цветов
}BITMAPINFOHEADER;

ВОТ тебе заголовок BMP=сохраняй

DimaK опубликован 07-02-2002 10:07 MSK     Click Here to See the Profile for DimaK  Click Here to Email DimaK     
два контекста памяти и копируй куски какие хочешь да еще роп операции доступны
BitBlt
The BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.

BOOL BitBlt(
HDC hdcDest, // handle to destination device context
int nXDest, // x-coordinate of destination rectangle's upper-left
// corner
int nYDest, // y-coordinate of destination rectangle's upper-left
// corner
int nWidth, // width of destination rectangle
int nHeight, // height of destination rectangle
HDC hdcSrc, // handle to source device context
int nXSrc, // x-coordinate of source rectangle's upper-left
// corner
int nYSrc, // y-coordinate of source rectangle's upper-left
// corner
DWORD dwRop // raster operation code
);

HANDLE LoadImage(
HINSTANCE hinst, // handle of the instance containing the image
LPCTSTR lpszName, // name or identifier of image
UINT uType, // type of image =IMAGE_BITMAP
int cxDesired, // desired width= NULL
int cyDesired, // desired height= NULL
UINT fuLoad // load flags =LR_LOADFROMFILE
);
ну и смотри сопутствующте функции там все просто

Stiff опубликован 07-02-2002 11:18 MSK     Click Here to See the Profile for Stiff  Click Here to Email Stiff     
2DimaK
Странно когда я поледний раз смотрел LoadImage. LR_LOADFROMFILE реализвано не было наверно я не там смотрел ...
DimaK опубликован 07-02-2002 14:52 MSK     Click Here to See the Profile for DimaK  Click Here to Email DimaK     
2Stiff вродебы и небыло:) когда я програмил в какойто доке нашел что так можно но только под nt проверил под виндами тоже работает :) а это с мсдн скопировал

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.