当前位置: 代码迷 >> VC >> pictureBox中怎么保存截取图片
  详细解决方案

pictureBox中怎么保存截取图片

热度:3344   发布时间:2013-02-25 00:00:00.0
pictureBox中如何保存截取图片
平台是VS2005 CLR
我的pictureBox控件的sizemode的属性设置为CenterImage
  Rectangle^ rect = gcnew Rectangle(0,0,r-l,b-t); //l,t,r,b 分别为鼠标按下和抬起时候的X、Y坐标
  Bitmap^ bmp = gcnew Bitmap(r-l,b-t);
  pictureBox->DrawToBitmap(bmp,* rect);
  Graphics^ graphic = Graphics::FromImage(bmp);
  graphic->DrawImage(pictureBox->Image,l ,t,*rect, GraphicsUnit::Pixel);
  pictureBox->Image=bmp;
  bmp->Save("C:\\a.jpg",System::Drawing::Imaging::ImageFormat::Jpeg);
 
  但是我截取后得到的图片明显和我矩形框的区域不符合,听别人说是需要进行坐标的变换,将此区域左上角在picturebox中的坐标转换到图像坐标中,左上角对应哪个像素,将此区域的宽和高转换到图像坐标,即宽和高分别覆盖到多少像素,然后新建一个bitmap。
但是我还是不知道如何去做,希望高手能够举个例子,谢谢

------解决方案--------------------------------------------------------
PictureBox.saveimage

savePicture慢慢琢磨
------解决方案--------------------------------------------------------
位置不对的话是不是这个方法再搞鬼?
ScreenToClient(hwnd,&pt);