MFC/VC关于jpg图片缩放问题
我在一个对话框中显示一串图片,由于图片太大,显示不完,我现在想把jpg图片按图片原长宽比例缩放到对话框中,怎么弄,这里不是bmp图片额...
我在一个对话框中显示一串图片,由于图片太大,显示不完,我现在想把jpg图片按图片原长宽比例缩放到对话框中,怎么弄,这里不是bmp图片额
展开
3个回答
展开全部
如果你用GDI处理的话,就在内存中把JPG转为BMP格式然后再缩放显示,不过JPG转BMP的代码非常复杂,光转换的原理就可以整整写一本书了。
如果用GDI+处理的话,就简单了,windows常用图片格式GDI+都是用同样的方式处理的,可以不去考虑图片的格式
////////////////////
bitmap1,bitmap2,bitmap3 //你要显示的图片用Bitmap bitmap1(L"jpg图片绝对路径");来构造
rect1,rect2,rect3 //图片要缩放到的区域是Rect,而不是Crect
x2,y2,x3,y3 //第二,三张图片要显示的起始位置
////////////////////////////
Graphics graphics(this->GetDC()->m_hDC);
graphics.DrawImage(&bitmap1,rect1,0,0,bitmap1.GetWidth(),bitmap1.GetHeight(),UnitPixel);
graphics.TranslateTransform(x2,y2);
graphics.DrawImage(&bitmap2,rect2,0,0,bitmap2.GetWidth(),bitmap2.GetHeight(),UnitPixel);
graphics.TranslateTransform(x3,y3);
graphics.DrawImage(&bitmap3,rect3,0,0,bitmap3.GetWidth(),bitmap3.GetHeight(),UnitPixel);
如果用GDI+处理的话,就简单了,windows常用图片格式GDI+都是用同样的方式处理的,可以不去考虑图片的格式
////////////////////
bitmap1,bitmap2,bitmap3 //你要显示的图片用Bitmap bitmap1(L"jpg图片绝对路径");来构造
rect1,rect2,rect3 //图片要缩放到的区域是Rect,而不是Crect
x2,y2,x3,y3 //第二,三张图片要显示的起始位置
////////////////////////////
Graphics graphics(this->GetDC()->m_hDC);
graphics.DrawImage(&bitmap1,rect1,0,0,bitmap1.GetWidth(),bitmap1.GetHeight(),UnitPixel);
graphics.TranslateTransform(x2,y2);
graphics.DrawImage(&bitmap2,rect2,0,0,bitmap2.GetWidth(),bitmap2.GetHeight(),UnitPixel);
graphics.TranslateTransform(x3,y3);
graphics.DrawImage(&bitmap3,rect3,0,0,bitmap3.GetWidth(),bitmap3.GetHeight(),UnitPixel);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询