GDI+ drawimage error【转】http://bbs.csdn.net/topics/300044717
Gdiplus::Bitmap GpBmp(WideString("Climber.jpg"));
HBITMAP HBmp; GpBmp.GetHBITMAP(0, &HBmp); Image2->Picture->Bitmap->Handle = HBmp; Gdiplus::Graphics gr(Image3->Canvas->Handle); gr.SetInterpolationMode(InterpolationModeHighQualityBilinear); gr.DrawImage(&GpBmp, Gdiplus::Rect(0, 0, Image3->Width, Image3->Height), 20, 20, 100, 100, UnitPixel);//UnitPixel 上面这段代码是把Image2的部分缩放到Image3上,如果采用像素为单位可以,如果采用英寸就不行,怎么办? Gdiplus::Bitmap GpBmp(WideString("Climber.jpg")); HBITMAP HBmp; GpBmp.GetHBITMAP(0, &HBmp); Image2->Picture->Bitmap->Handle = HBmp; Gdiplus::Graphics gr(Image3->Canvas->Handle); gr.SetPageUnit(Gdiplus::UnitInch ); //UnitInch 用英寸为单位 gr.SetInterpolationMode(InterpolationModeHighQualityBilinear); gr.DrawImage(&GpBmp, Gdiplus::Rect(0, 0, Image3->Width, Image3->Height), 0, 0, 1, 1, UnitInch); 这样就画不出图来,0, 0, 1, 1,怎么改都不行,请问是怎么回事? |
2
|
#1 得分:10回复于: 2009-02-04 10:45:33
语法
DrawImage(ImageID, x, y [, Width, Height]) 描述 在指定位置绘制指定的图片, image ID 可以使用ImageID() 函数从图像库里得到。 I如果可选参数 'Width' 和 'Height' 参数被指定,那么显示的时候可以随便放大缩小图片,但是原图片大小不改变。 另外,你再参考下http://dev.yesky.com/255/2190255_4.shtml那段代码 |
|
#2 得分:0回复于: 2009-02-04 11:08:19
再看看。。。。。。
|
|
#3 得分:0回复于: 2009-02-04 11:28:35
高手请赐教啊
|
6
3
|
#4 得分:40回复于: 2009-02-04 13:01:42
转成的英寸以后最后一句里的Image3->Width, Image3->Height也要改成英寸为单位。
|
|
#5 得分:0回复于: 2009-02-04 13:43:12
怎么改啊
|
|
#6 得分:0回复于: 2009-02-04 14:29:28
如果把以下代码放在最后,弹出这样的提示:不成功 6 查了一下:6对应的出错信息是 NotImplemented ,函数要怎么改才对啊?请各位大侠们指教
int f = gr.GetLastStatus() ; if (f != Gdiplus::Ok) { ShowMessage("不成功:" + IntToStr(f)); } |
6
3
|
#7 得分:0回复于: 2009-02-05 16:37:59
嗯 ,我特意试了一下,发现用UnitInch确实不行。
|