首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

jpg文件保存后分辨率降低?解决方案

2012-01-29 
jpg文件保存后分辨率降低?用了CImage类,Load进图片并Save,但时得到的图片的分辨率是96,怎么能改到300?打算

jpg文件保存后分辨率降低?
用了CImage类,Load进图片并Save,但时得到的图片的分辨率是96,怎么能改到300?
打算做一个排版的软件,保存Jpg有问题,代码如下:
CString   strFilter;
CString   strFileName;
CString   strExection;
COLORREF   color   =   RGB(255,   255,   255);
CBrush   brush;
        CMainFrame*   pFrame   =   (CMainFrame*)AfxGetMainWnd();
        LeftView*   pLeftView   =   (LeftView*)pFrame-> GetSplitterLeftWnd()-> GetPane(0,   0);
        CImage   tmpImage;
       
if(!brush.CreateSolidBrush(color))
return;
CRect   rect;
rect.left   =   0;
rect.top   =   0;
rect.bottom   =   4430;
rect.right   =   2010;

        if(pLeftView-> m_pImageNameList-> GetSize()   <   1)
        {
                if(!tmpImage.IsNull())
                        tmpImage.Destroy();
                return;
        }
        CDC*   pImageCDC   =   CDC::FromHandle(m_image.GetDC());
        //pImageCDC-> SetViewportExt(2010*300/96,   4430*300/96);
        HDC   hDC   =   pImageCDC-> m_hDC;
        //pImageCDC-> SetMapMode(MM_ANISOTROPIC);    
        pImageCDC-> FillRect(&rect,   &brush);
        CString   strTemp;
        LeftBottomView*   pView   =   (LeftBottomView*)pFrame-> GetSplitterLeftWnd()-                                                             > GetPane(1,   0);
        TCHAR*   str   =   new   TCHAR(20);
        int   lenth   =   pView-> m_pMyEdit-> GetWindowText(str,   20);
int   index   =   0;
POSITION   pos;
pos   =   pLeftView-> m_pImageNameList-> GetHeadPosition();
while(index   <   pLeftView-> m_pImageNameList-> GetSize())
{
tmpImage.Load(pLeftView-> m_pImageNameList-> GetAt(pos).c_str());
for(int   i   =   0;   i   <   8;   i++){
tmpImage.Draw(hDC,   40+(i%2)*(30+PHOTO_WIDTH_V)   +   index%2*   1000,   100+i/2*(45+PHOTO_HEIGHT_V)+   index/2   *   1430/*,   PHOTO_WIDTH_V,   PHOTO_HEIGHT_V*/);
MyDrawText(pImageCDC,   40+(i%2)*(30+PHOTO_WIDTH_V)+90+index%2*   1000,   100+i/2*(45+PHOTO_HEIGHT_V)+PHOTO_HEIGHT_V+index/2   *   1430,   str);
}
pLeftView-> m_pImageNameList-> GetNext(pos);
index++;
}
CFileDialog   dlg(FALSE,   NULL,   NULL,   OFN_OVERWRITEPROMPT   |   OFN_EXPLORER,   "File(*.jpg)|*.jpg|| ");
 
dlg.DoModal();

strExection=   ".jpg ";
strFileName   =   dlg.m_ofn.lpstrFile;
strFileName   =   strFileName   +   strExection;

        if(strFileName   ==   ".jpg ")
                return;


m_image.Save(strFileName);

[解决办法]
mark,什么意思,能说清楚些吗?
[解决办法]
GDI+是一个绘图库。如果你要一个图形处理库,去搜索CxImage
[解决办法]
用cximage多好啊
[解决办法]
你是用CImage tmpImage load图片和绘制图片!
你为什么用m_image.Save(strFileName)呢。
改为
tmpImage .Save(strFileName)试试吧。

热点排行