Click here to Skip to main content
15,924,317 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
Questionenum Pin
klutez12316-May-07 3:09
klutez12316-May-07 3:09 
AnswerRe: enum Pin
David Crow16-May-07 3:15
David Crow16-May-07 3:15 
GeneralRe: enum Pin
klutez12316-May-07 3:18
klutez12316-May-07 3:18 
GeneralRe: enum Pin
Maximilien16-May-07 3:38
Maximilien16-May-07 3:38 
Questionhow to build a 3-dimension image processing ? Pin
gentleguy16-May-07 3:02
gentleguy16-May-07 3:02 
AnswerRe: how to build a 3-dimension image processing ? Pin
Cedric Moonen16-May-07 3:29
Cedric Moonen16-May-07 3:29 
AnswerRe: how to build a 3-dimension image processing ? Pin
Hamid_RT16-May-07 5:40
Hamid_RT16-May-07 5:40 
QuestionSave an image (of 24 bits depth or less) Pin
llp00na16-May-07 3:00
llp00na16-May-07 3:00 
Dear All;

I am trying to save an image to my harddrive, the image should be of depth 24 or less ie.16, 8, 4. regardless of of the monitor's resolution

I have the tried the following code and its works fine but the saved images are of 32 bit depth. I have tried to fiddle with the code but i cant get an image of 24 bit depth or less Cry | :(( , can anyone please advise and i will be grateful.

<br />
void Example:: SaveBitmap(char *name,HBITMAP hBitMap)<br />
{<br />
	CBitmap bmp;<br />
	bmp.Attach(hBitMap);<br />
<br />
	BITMAP bitmap;<br />
	bmp.GetBitmap(&bitmap);<br />
	int size = bitmap.bmWidth*bitmap.bmHeight*bitmap.bmBitsPixel/8;<br />
	BYTE *lpBits = new BYTE[size];<br />
<br />
	::GetBitmapBits(hBitMap,size,lpBits);<br />
	WriteBmp(name,&bitmap,(int*)lpBits);<br />
	delete []lpBits;<br />
}<br />
// this method write a bitmap to the hard disk<br />
void Example::WriteBmp(char* name,BITMAP *bmp,int* data)<br />
{<br />
	BITMAPINFO Bmi;<br />
	memset(&Bmi,0,sizeof(BITMAPINFO));<br />
	Bmi.bmiHeader.biSize			= sizeof(BITMAPINFOHEADER);<br />
	Bmi.bmiHeader.biWidth			= bmp->bmWidth;<br />
	Bmi.bmiHeader.biHeight			= bmp->bmHeight;<br />
	Bmi.bmiHeader.biPlanes			= 1;<br />
	Bmi.bmiHeader.biBitCount		= bmp->bmBitsPixel;<br />
	Bmi.bmiHeader.biCompression		= BI_RGB;<br />
	Bmi.bmiHeader.biSizeImage		=    bmp->bmHeight*bmp->bmWidth*bmp->bmBitsPixel/8;<br />
<br />
	FILE* image = fopen (name,"wb");<br />
	if(image==0)<br />
		return;<br />
	int h = abs(Bmi.bmiHeader.biHeight);<br />
	int w = abs(Bmi.bmiHeader.biWidth);<br />
	Bmi.bmiHeader.biHeight=-h;<br />
	Bmi.bmiHeader.biWidth=w;<br />
	int sz = Bmi.bmiHeader.biSizeImage;<br />
<br />
	BITMAPFILEHEADER bfh;<br />
	bfh.bfType=('M'<<8)+'B'; <br />
        bfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER); <br />
        bfh.bfSize=sz+bfh.bfOffBits; <br />
        bfh.bfReserved1=0; <br />
        bfh.bfReserved2=0; <br />
	fwrite(&bfh,sizeof(bfh),1,image);<br />
	fwrite(&Bmi.bmiHeader,sizeof(BITMAPINFOHEADER),1,image);<br />
	fwrite(data,sz,1,image);<br />
	fclose(image);<br />
}<br />
<\code><br />
<br />
Thank you <br />
<br />
<div class="ForumSig">llp00na</div>

AnswerRe: Save an image (of 24 bits depth or less) Pin
Mark Salsbery16-May-07 5:27
Mark Salsbery16-May-07 5:27 
GeneralRe: Save an image (of 24 bits depth or less) Pin
llp00na16-May-07 6:21
llp00na16-May-07 6:21 
GeneralRe: Save an image (of 24 bits depth or less) Pin
Mark Salsbery16-May-07 6:31
Mark Salsbery16-May-07 6:31 
GeneralRe: Save an image (of 24 bits depth or less) Pin
llp00na16-May-07 6:42
llp00na16-May-07 6:42 
GeneralRe: Save an image (of 24 bits depth or less) Pin
Nelek17-May-07 20:04
protectorNelek17-May-07 20:04 
Questionwininet.h and winsock.h Pin
amitmistry_petlad 16-May-07 2:59
amitmistry_petlad 16-May-07 2:59 
AnswerRe: wininet.h and winsock.h Pin
Mark Salsbery16-May-07 5:32
Mark Salsbery16-May-07 5:32 
GeneralRe: wininet.h and winsock.h Pin
amitmistry_petlad 16-May-07 17:34
amitmistry_petlad 16-May-07 17:34 
GeneralRe: wininet.h and winsock.h Pin
Mark Salsbery17-May-07 5:21
Mark Salsbery17-May-07 5:21 
GeneralRe: wininet.h and winsock.h Pin
amitmistry_petlad 17-May-07 18:01
amitmistry_petlad 17-May-07 18:01 
QuestionWIN32_FIND_DATA pTempFind; and .cFileName Pin
Immunity1816-May-07 2:51
Immunity1816-May-07 2:51 
AnswerRe: WIN32_FIND_DATA pTempFind; and .cFileName Pin
Immunity1816-May-07 3:01
Immunity1816-May-07 3:01 
QuestionRe: WIN32_FIND_DATA pTempFind; and .cFileName Pin
David Crow16-May-07 3:04
David Crow16-May-07 3:04 
AnswerRe: WIN32_FIND_DATA pTempFind; and .cFileName Pin
Immunity1816-May-07 3:15
Immunity1816-May-07 3:15 
QuestionRe: WIN32_FIND_DATA pTempFind; and .cFileName Pin
David Crow16-May-07 3:16
David Crow16-May-07 3:16 
AnswerRe: WIN32_FIND_DATA pTempFind; and .cFileName Pin
Immunity1816-May-07 3:20
Immunity1816-May-07 3:20 
QuestionRe: WIN32_FIND_DATA pTempFind; and .cFileName Pin
David Crow16-May-07 3:44
David Crow16-May-07 3:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.