怎样在对话框上的picture control上的jpg或bmp图像上画圆或矩形?
并且使图像保存改变,就是图像上有了话的图形,我想用GDI+

解决方案 »

  1.   

    将bmp图像和矩形绘制都在内存DC中进行绘制。然后保存内存DC中的位图
      

  2.   

    VC中的picture control中,可以直接显示jpg图像吗???
      

  3.   

    我用GDI+画上去的,我要做个对照片进行处理的程序,
    比如在上面画矩形,椭圆,标注文字,测量尺子等,
    可是应该怎么做呢,我做的修改,保存在照片上呢?
      

  4.   

    GDI+可以直接在VC中显示JPG?没有转换?我不知道GDI+是怎么回事。
      

  5.   

    据我所知,VC是不能直接显示JPG图像的,必须先转换成位图。因为MFC仅仅支持位图格式和WMF格式(图元格式)两种。
      

  6.   

    那照片处理程序都是怎么做的呢?我想在一幅JPG图片上
    画线,并使照片保存要怎么做?
      

  7.   

    找找有没有位图和JPG文件互相转换的程序,就可以完成了。
      

  8.   

    位图和JPG文件的转换我会啊,用CImage或者GDI+的Image.
    难道只能先把jpg文件转换成bmp文件,才能在上面画图吗?
      

  9.   

    那怎么样才能在bmp文件上画图呢?有代码吗?
      

  10.   

    不是在位图上画图。
    就是象双缓存方式那样,创建一个与当前DC相关的内存DC,将bmp图像先选入内存DC中,然后用内存DC进行绘图操作,比如memDC.Rectangle(rect);就可以在内存DC上绘制一个矩形,由于已经将你的bmp选入,就相当于做成了底板,因此矩形就好像画在图像上面了。最后将内存DC中的图像取出。
      

  11.   

    CBitmap Bitmap;
    Bitmap.CreateCompatibleBitmap(pDC,cxScreen,cyScreen);
    //确定MemDC的大小
    MemDC.SelectObject(&Bitmap);
    可是我怎么才能把一幅bmp图像选进memDC呢?
      

  12.   

    HBITMAP hBitmap = ::LoadBitmap(...,..);
    CBitmap *pBmp = CBitmap::FromHandle(hBitmap);
    memdc.SelectObject(pBmp);
      

  13.   

    文件要通过LoadImage加载
    StretchBlt似乎可以加载JPG,你看一下MSDN吧
      

  14.   

    用GDI+的static Graphics *FromImage( Image *image);
    可以满足你的要求,你可以在照片上画图,并保存照片。
      

  15.   

    我确实用GDI+的Graphics *FromImage( Image *image);
    这个方法,绝对好,GDI达不到要求!