*Bitmap 转换为 *Image

   Bitmap 是Image的子类

   因此,Bitmap类指针可以转换为Image类指针

   下面的转换是没有问题的

   

			   Bitmap bmp(souceRectf.Width,souceRectf.Height);
			   Image*pImg=(Image*)&bmp;


  但是,如果pImg是全局变量,也即pImg在上述函数体范围外继续使用时,便会出现错误。

  

  原因是:  bmp是局部变量,因此出了此函数作用范围后,便会被系统撤销,而这时如果再调用pImg便会出现读内存错误。

 

  那如何解决呢?如何才能使得出来函数范围后,变量还可继续使用?

  那当然是在堆上分配变量

 

 方法一: 直接NEW Bitmap

 

			   Bitmap *pImg=new Bitmap(souceRectf.Width,souceRectf.Height);
               Graphics graphics(pImg);
			   graphics.DrawImage(m_pImage,desRectf,souceRectf.X,souceRectf.Y,souceRectf.Width,souceRectf.Height,UnitPixel,NULL);
			   if (m_showImageDlg.pImg!=NULL)
			   {
				   delete m_showImageDlg.pImg;
			   }
			   m_showImageDlg.pImg=pImg;  //
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水迎朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值