当前位置:编程学习 > C/C++ >>

用VC++编程时如何读取并显示JPG文件

用GDI+
添加Gdiplus.lib到工程中

头文件中添加
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*  //定义类型

#include "Gdiplus.h"  //包含gdi头文件
using namespace Gdiplus;  //命名空间

添加类成员变量

GdiplusStartupInput m_gdiPlusInPut;
ULONG_PTR m_gdiPlusToken;

构造函数中初始化GDI+

GdiplusStartup( &m_gdiPlusToken, &m_gdiPlusInPut, NULL );

析构函数中 //销毁GDI+

GdiplusShutdown(gdiplusToken);

OnPaint()中:

 //CDialog::OnPaint();
  CPaintDC dc( this );

 //建立图形对象
  Graphics mGraphics( dc.GetSafeHdc() );

  //装入图像文件

  Image img( L"./res/test.jpg", TRUE );

  //在指定区域pdestPoints显示图像 (根据背景大小按比例缩放)

  CRect rcClient;
  GetClientRect( &rcClient );
 
  BOOL bWidth = rcClient.Width() / img.GetWidth() > rcClient.Height() / img.GetHeight();
  if ( bWidth )
  {
   mGraphics.DrawImage( &img, 0, 0, rcClient.Width(), rcClient.Width() * img.GetHeight() / img.GetWidth() );
  }
  else
  {
   mGraphics.DrawImage(&img, 0, 0, rcClient.Height() * img.GetWidth() / img.GetHeight(), rcClient.Height() );
  }

//原始大小
mGraphics.DrawImage(&img, 0, 0, img.GetWidth(), img.GetHeight() );


www.zzzyk.com 电脑知识网 为你解决问题的好地方

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,