Click here to Skip to main content
15,898,134 members
Home / Discussions / Graphics
   

Graphics

 
QuestionBitmap blur problem [modified] Pin
Naturality7-Jun-08 14:49
Naturality7-Jun-08 14:49 
AnswerRe: Bitmap blur problem Pin
Christian Graus7-Jun-08 16:11
protectorChristian Graus7-Jun-08 16:11 
AnswerRe: Bitmap blur problem Pin
Tim Craig7-Jun-08 19:46
Tim Craig7-Jun-08 19:46 
GeneralRe: Bitmap blur problem [modified] Pin
Naturality8-Jun-08 2:29
Naturality8-Jun-08 2:29 
GeneralRe: Bitmap blur problem Pin
Tim Craig8-Jun-08 7:56
Tim Craig8-Jun-08 7:56 
GeneralRe: Bitmap blur problem Pin
Naturality8-Jun-08 11:11
Naturality8-Jun-08 11:11 
GeneralRe: Bitmap blur problem Pin
Tim Craig8-Jun-08 11:25
Tim Craig8-Jun-08 11:25 
GeneralRe: Bitmap blur problem Pin
Naturality8-Jun-08 13:11
Naturality8-Jun-08 13:11 
Okay, here's the full file(sans the reading/writing stuff)
void set_pixel(long x,long y, RGBTRIPLE colour){	
	image[(bmp.biHeight-1-y)*bmp.biWidth+x] = colour;
}

void get_pixel(int x, int y, RGBTRIPLE colour){
	colour = image[(bmp.biHeight-1-y)*bmp.biWidth+x];
	}



void clear_pixel(RGBTRIPLE colour){
	colour.rgbtBlue = 0;
	colour.rgbtGreen = 0;
	colour.rgbtRed = 0;
}


void avg(RGBTRIPLE colour[], RGBTRIPLE merge, int size) {
    unsigned int blue = 0, green = 0, red = 0;
	for(int i=0; i<size; i++)="" {<br="" mode="hold" />		blue += colour[i].rgbtBlue;
		green += colour[i].rgbtGreen;
		red += colour[i].rgbtRed;
    }
	merge.rgbtBlue = blue / size;
	merge.rgbtGreen= green / size;
	merge.rgbtRed  = red / size;
}

<small>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, int nCmdShow)
{
	
ZeroMemory (&bmp, sizeof bmp);
		bmp.biClrImportant  = 0;
		bmp.biBitCount      = 4;
		bmp.biCompression   = 0;
		bmp.biPlanes        = 1;
		bmp.biSize          = 40;
		bmp.biSizeImage     = 0;
		bmp.biXPelsPerMeter = 0;
		bmp.biYPelsPerMeter = 0;
		bmp.biClrUsed       = 16;
		bmp.biHeight        = 128;
		bmp.biWidth         = 128;

		long paddedsize = bmp.biHeight * bmp.biWidth;
		bfh.bfType = 19778;
		bfh.bfReserved1 = 0;
		bfh.bfReserved2 = 0;
		bfh.bfOffBits = 1078;
		bfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + paddedsize;
		

hfile = CreateFile("noise.bmp",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,NULL,NULL);

ReadFile(hfile,&bfh,sizeof(bfh),&written,NULL);
ReadFile(hfile,&bmp,sizeof(bmp),&written,NULL);

int imagesize = bmp.biWidth*bmp.biHeight;
image = new RGBTRIPLE[imagesize]; 
ReadFile(hfile,image,sizeof(RGBTRIPLE),&written,NULL);</small>

RGBTRIPLE blank[9]= { 0 };
RGBTRIPLE Merge   = { 0  , 0 , 0  };
long yp=0, xp=0;



for(int y = 0; y < bmp.biHeight; y=y+3){
	for(int x = 0; x < bmp.biWidth; x=x+3){
		for(int i = 0; i < 9; i++){
		int yp=0, xp=0;
		get_pixel(x+xp,y+yp,blank[i]);  // blank is an RGBTRIPLE array
		if(xp<3)
			xp++;
		else{
			xp = 0;
			yp++;
		}		}
		avg(blank, Merge, 9);
		set_pixel(x,y,Merge);
		for(int i = 0; i < 9; i++){
			blank[i].rgbtBlue=0;
			blank[i].rgbtGreen=0;
			blank[i].rgbtRed=0;
		}
		clear_pixel(Merge);
		yp=0, xp=0;
}}


EDIT: AHa! I've found something
for(int i = 0; i < 9; i++){
int yp=0, xp=0;

I declared yp and xp as int when I had already declared them as long. This was reverting them to 0 each time.

Trouble is, get_pixel() and set_pixel() give unhandled exceptions when they use anything other than x and y. I've tried "x=x+xp" but it still happens. Hmm....
I'm stumped.

"Sir, I protest. I am NOT a merry man!"

GeneralRe: Bitmap blur problem Pin
Tim Craig8-Jun-08 18:58
Tim Craig8-Jun-08 18:58 
GeneralRe: Bitmap blur problem [modified] Pin
Naturality9-Jun-08 4:44
Naturality9-Jun-08 4:44 
GeneralRe: Bitmap blur problem Pin
Tim Craig9-Jun-08 9:05
Tim Craig9-Jun-08 9:05 
GeneralRe: Bitmap blur problem Pin
Naturality9-Jun-08 9:11
Naturality9-Jun-08 9:11 
GeneralRe: Bitmap blur problem Pin
Naturality9-Jun-08 10:06
Naturality9-Jun-08 10:06 
GeneralRe: Bitmap blur problem Pin
Tim Craig9-Jun-08 14:32
Tim Craig9-Jun-08 14:32 
GeneralRe: Bitmap blur problem Pin
Tim Craig9-Jun-08 15:10
Tim Craig9-Jun-08 15:10 
GeneralRe: Bitmap blur problem Pin
Naturality9-Jun-08 15:43
Naturality9-Jun-08 15:43 
GeneralRe: Bitmap blur problem Pin
Christian Graus9-Jun-08 17:00
protectorChristian Graus9-Jun-08 17:00 
GeneralRe: Bitmap blur problem Pin
Naturality9-Jun-08 17:06
Naturality9-Jun-08 17:06 
GeneralRe: Bitmap blur problem Pin
Tim Craig9-Jun-08 17:27
Tim Craig9-Jun-08 17:27 
GeneralRe: Bitmap blur problem Pin
Naturality9-Jun-08 17:49
Naturality9-Jun-08 17:49 
GeneralRe: Bitmap blur problem Pin
Christian Graus9-Jun-08 19:15
protectorChristian Graus9-Jun-08 19:15 
GeneralRe: Bitmap blur problem Pin
Tim Craig9-Jun-08 20:32
Tim Craig9-Jun-08 20:32 
GeneralRe: Bitmap blur problem Pin
Tim Craig9-Jun-08 20:35
Tim Craig9-Jun-08 20:35 
GeneralRe: Bitmap blur problem Pin
Christian Graus10-Jun-08 4:03
protectorChristian Graus10-Jun-08 4:03 
GeneralRe: Bitmap blur problem Pin
Naturality10-Jun-08 4:24
Naturality10-Jun-08 4:24 

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.