Followers 0

# blurry images

## 6 posts in this topic

My apolagy's for mot doing a full introduction of myself on my first post (I'll do that later, this site looks quite intriguing) but I'm to buisy coding atm to do that now.

anywho. I'm making a game, but I'm having an issue with importing bitmaps, i try to load them in 1:1 so that I know the pixel size of evrything, but all the images seem to be compressed and warped one way or another. here is how I go about loading in a bmp (dxd9 lib's & headers included already and whatnot)

// Loading in the bmp file (it's a 24 bit image, but changing the format doesn't seem to do anything except make it dissapear, or become a black box)

D3DXCreateTextureFromFileEx(d3ddev,    // the device pointer
L"MainChar.bmp",    // the new file name
D3DX_DEFAULT,    // default width
D3DX_DEFAULT,    // default height
D3DX_DEFAULT,    // no mip mapping
NULL,    // regular usage
D3DFMT_A8R8G8B8,    // 32-bit pixels with alpha
D3DPOOL_MANAGED,    // typical memory handling
D3DX_DEFAULT,    // no filtering
D3DX_DEFAULT,    // no mip filtering
D3DCOLOR_XRGB(255, 0, 255),    // the hot-pink color key
NULL,    // no image info struct
NULL,    // not using 256 colors
&MainChar);    // load to sprite

// ^ credit to where credit's due, this is pretty much the same way DirectX tutorial.com does it, only changed the pointer name basicly.

// show the image:

d3dspt->Draw(MainChar, NULL, &center, &position, D3DCOLOR_ARGB(255,255, 255, 255));

// and of course clear the image when done:

if (sprite != NULL)sprite->Release();


If you feel you need to see more code, I'll attach a working bit of code + img to this code (I'll leave out the background image to spare this server a few byte's of burden, wich is also why I compressed it, if you don't trust it, let me know and maybe I'll upload the code un-compressed)

any suggestions will be greatly appreciated!

0

##### Share on other sites

First thought is are you aware that that load method will automatically stretch the image dimensions to a power of 2 if that's all the hardware supports (very common)?

Doh! yes, I was aware, of this, I just completly forgot >.< Thank you! and the Texture atlas is also a good Idea. Thanks!

1

##### Share on other sites

alright, less rush this time, since, Thanks to Aardvajk's suggestion, at least the measurements line up properly. but the images I'm getting are still blurry as such:

the top left square is the image I'm using, and the 4 squares in the cyan is how my program shows it.

I've changed:

D3DFMT_A8R8G8B8 -> D3DFMT_UNKNOWN with no effect,

I've also tried a few filters with no effect (possible I'm trying the wrong filters, though I don't think filtering is the problem)

The bmp I'm using is 512x512 (2^9) 24 bit.

sorry for asking 2 questions in a row, I can normally figure this stuff out, but for some reason I can't atm.

but thank you in advance!

EDIT: Made some progress on my own; it seems like lining up the pxels to the texels is at least part of the problem, since shifting the image over by 0.5 does change how blurry it is, but I have yet to suceed at getting it chrisp.

Edited by Nick_Black
0

##### Share on other sites

Another cause of unwanted blurring may be if the backbuffer size does not match up the used client area size of the window.

yes! that was the issue, I didn't realize that having a border shrinks the DC inside, so I got rid of the border + adjust for the pixel/texels and now all is nice and chrispy like a warm taco shell. thank you!

0

##### Share on other sites

If you still want a border you can look into AdjustWindowRect(Ex). It calculates a window rect from the wanted client rect size and the windows (ex) styles of your window.

1

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account