本人在导入图像时使用了car1->m_hObject = (HBITMAP)::LoadImage(NULL,"car1.bmp",IMAGE_BITMAP,196,66,LR_LOADFROMFILE);这个函数,这里图像的尺寸是196,66。而原图像却是800×264的图像,但图像好像是缩小了似的,但却又不是完全按比例来使用的,本人不知道其具体用法,MSDN没有具体的解释,请高人指点!谢谢!

解决方案 »

  1.   

    图象缩放不一定要按高和宽一样的比例进行,你在windows画图板的缩放中就会看到,但它不是缩放,而是裁剪掉。
      
      你那里的缩小时是重叠了像素,即如原图宽为800像素,现在196,即打在屏幕上时,现在只大约每隔4个像素才取(具休怎么取,与API里的算法相关)一个,其它的舍弃了,但看起来效果没太大变化。  放大同缩小相反,采用了插值法,即如果原图是196,现在要变成800,即原来的一个像素要变成现在的4个像素,一般采用临域插值算法,即将最近的若干个像素的各分量按一定比例取值,生成一个原图中没有的像素,但和附近的像素看起来差别不太多,这样看起来就连续。