在打开的图像上绘图后,图像是JPG,GIF格式的,点击保存将修改过的图片保存下来,怎样实现?
各位大侠救命,分已不多,,,

解决方案 »

  1.   

    要是用CImage类的话,直接保存就可以了。不用转存Bitmap
    m_image.Save("d:\\abc.jpg");
      

  2.   

    用CImage类的话,直接保存就可以了。不用转存Bitmap .m_pImage->Save(file, CxImage::FindType(file)); 
      

  3.   

    把这个转换的例子给你一个,做一下参考://****************************************************************************************//
    //函数 CreateSmallPic
    //主要功能: 将一个大图转成小图
    //参数列表: 
    //         1、char *szOldFileName:
    //         2、char *szNewFilName:
    //返回值: 
    //备注: 对于小图片不转
    //****************************************************************************************//
    bool CreateSmallPic(char *szOldFileName, char *szNewFilName)
    {
    const WIDTH = 160;
    const HEIGHT = 160;
    CImage oldimg;
    CImage newimg;
    oldimg.Load(szOldFileName);
    if(oldimg.IsNull())
    return false;
    int nWidth = 160;
    int nHeight = 160; nWidth = oldimg.GetWidth();
    nHeight = oldimg.GetHeight(); if(nWidth > WIDTH || nHeight > HEIGHT)
    {
    double dRatio = nWidth * 1.0 / nHeight;
    if(nWidth > nHeight)
    {
    nWidth = WIDTH;
    nHeight = nWidth / dRatio;
    }
    else
    {
    nHeight = HEIGHT;
    nWidth = nHeight * dRatio;
    }
    } if(!newimg.CreateEx(nWidth, nHeight, 24, BI_RGB))
    {
    oldimg.Destroy();
    return false;
    } int nPreMode = ::SetStretchBltMode(newimg.GetDC(),  HALFTONE);
    newimg.ReleaseDC();
    oldimg.Draw(newimg.GetDC(), 0, 0, nWidth, nHeight, 0, 0, oldimg.GetWidth(), oldimg.GetHeight());
    newimg.ReleaseDC();
    ::SetBrushOrgEx(newimg.GetDC(), 0, 0, NULL); 
    newimg.ReleaseDC();
    ::SetStretchBltMode(newimg.GetDC(), nPreMode);
    newimg.ReleaseDC(); newimg.Save(szNewFilName);
    newimg.Destroy();
    oldimg.Destroy(); return true;
    }