The reason i am asking the above question is currently i am writing code to print the images from ImageMan. i am doing something like this to make very small image print well
Normal
0
false
false
false
EN-US
X-NONE
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
int flags(0);
LBITMAPINFO lpbi =
imgGetInfo(hImage, &flags); ==è This is the API which
returns a pointer to ImageMan's internal BITMAPINFO struct for the given image
//Below code gives DPI for the
image on the screen
int nHorzImgDPI =
lpbi->bmiHeader.biXPelsPerMeter / 39.37;
==è We Get 0 before save and 300 after saving document
int nVertImgDPI =
lpbi->bmiHeader.biYPelsPerMeter / 39.37;
==è We Get 0 before save and 300 after saving document
//This is to get the DPI for the
printer device
nVertDPI = pDC->GetDeviceCaps(
LOGPIXELSY );
nHorzDPI = pDC->GetDeviceCaps(
LOGPIXELSX );
destRect.left = HorzMargin;
destRect.top = VertMargin;
destRect.bottom =
(int)(((float)pImg->Height() / nVertImgDPI) * nVertDPI); ==èIf nVertImgDPI goes high,
destRect.bottom will go low
destRect.right =
(int)(((float)pImg->Width() / nHorzImgDPI) * nHorzDPI); ==èIf nHorzImgDPI goes high,
destRect. right will go low
I got this code from the Sample application from ImageMan install suite.
Now since the values for nHorzImgDPI and nVertImgDPI are different before and after saving the image to backend, user see different size of the same image printed before and after save.
please explain me as what goes on behind scenes in ImageMan.