- 浏览: 915586 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
天天来注册:
...
try catch finally 用法 -
tadpole_java:
谢谢你的分享。
二十七、Qt数据库(七)QSqlRelationalTableModel(转) -
359449749tan:
android之EditText文本监听(addTextChangedListener) -
michael_wang:
人过留名 多谢分享
Android NOtification 使用 -
wilsonchen:
wangqi0614 写道这个删除是删除所有的把?能不能值删除 ...
Android的SharedPreferences保存与删除数据简单实例
//加载jpg图片
int m_TotCount;
CImageList m_ImageList;
CListCtrl m_List;
HIMAGELIST hScreens = ImageList_Create(THUMWIDTH, THUMHEIGHT, ILC_COLOR32, 0, 1);
m_ImageList.Attach(hScreens);
m_list.SetImageList(&m_ImageList, LVSIL_NORMAL);
for (int i = 0; i<4; i++ )
{
CString ss;
ss.Format("%d",i);
HBITMAP bitm=LoadPicture( GetExeAbsolutePath()+ss+".jpg" );
if (bitm!=NULL)
{
m_TotCount=m_list.GetItemCount();
CBitmap* pImage = NULL;
pImage = new CBitmap();
pImage->Attach(bitm);
int imgP=m_ImageList.Add(pImage,RGB(0,0,0));
m_list.InsertItem(m_TotCount,ss+".jpg",imgP);
m_list.SetItemText(m_TotCount, 1, ss+".jpg");
}
}
//加载Jpg、Bmp图片,这个函数是关键代码!!!!!!!
HBITMAP CAddbmpDlg::LoadPicture(CString mFile)
{
CString pFSize;
WCHAR wpath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, mFile, -1, wpath, MAX_PATH);
IPicture* pPic;
OleLoadPicturePath(wpath, NULL, NULL, NULL, IID_IPicture,(LPVOID*)&pPic);
if (pPic==NULL) return NULL;
HBITMAP hPic = NULL;
pPic->get_Handle((UINT*)&hPic);
long nWidth=THUMWIDTH;
long nHeight=THUMHEIGHT;
long mWid,mHei;
pPic->get_Height(&mHei);
pPic->get_Width(&mWid);
HBITMAP hPicRet = (HBITMAP)CopyImage(hPic, IMAGE_BITMAP, nWidth, nHeight , LR_COPYDELETEORG);
HBRUSH hBrushBorder=::CreateSolidBrush(RGB(192, 192, 192));
HBRUSH hBrushBk=::CreateSolidBrush(RGB(255, 255, 255));
RECT rcBorder;
rcBorder.left=rcBorder.top=0;
rcBorder.right=THUMWIDTH;
rcBorder.bottom=THUMHEIGHT;
const float fRatio=(float)THUMHEIGHT/THUMWIDTH;
int XDest, YDest, nDestWidth, nDestHeight;
const float fImgRatio=(float)mHei/mWid;
if(fImgRatio > fRatio)
{
nDestWidth=(THUMHEIGHT/fImgRatio);
XDest=(THUMWIDTH-nDestWidth)/2;
YDest=0;
nDestHeight=THUMHEIGHT;
}
else
{
XDest=0;
nDestWidth=THUMWIDTH;
nDestHeight=(THUMWIDTH*fImgRatio);
YDest=(THUMHEIGHT-nDestHeight)/2;
}
CClientDC cdc(this);
HDC hDC=::CreateCompatibleDC(cdc.m_hDC);
HBITMAP bm = CreateCompatibleBitmap(cdc.m_hDC, THUMWIDTH, THUMHEIGHT);
HBITMAP pOldBitmapImage = (HBITMAP)SelectObject(hDC,bm);
::FillRect(hDC, &rcBorder, hBrushBk);
::FrameRect(hDC, &rcBorder, hBrushBorder);
HBITMAP hBmReturn= (HBITMAP)::SelectObject(hDC, pOldBitmapImage);
CDC hdcSrc, hdcDst;
hdcSrc.CreateCompatibleDC(NULL);
hdcDst.CreateCompatibleDC(NULL);
// Load the bitmaps into memory DC
CBitmap* hbmSrcT = (CBitmap*) hdcSrc.SelectObject(hPicRet);
CBitmap* hbmDstT = (CBitmap*) hdcDst.SelectObject(hBmReturn);
hdcDst.BitBlt(XDest,YDest,nDestWidth, nDestHeight, &hdcSrc,0,0,SRCCOPY);
pOldBitmapImage = (HBITMAP)SelectObject(hdcDst.m_hDC,bm);
DeleteDC(hDC);
DeleteObject(hBrushBorder);
DeleteObject(hBrushBk);
return pOldBitmapImage;
}
CString CAddbmpDlg::GetExeAbsolutePath()
{
char buffer[ MAX_PATH ];
CString ExePath = "";
GetModuleFileName( NULL, buffer, MAX_PATH );
ExePath=CString( buffer );
ExePath=ExePath.Left(
ExePath.ReverseFind( '\\' )>ExePath.ReverseFind( '/' )?
ExePath.ReverseFind( '\\' )+ 1:
ExePath.ReverseFind( '/' )+1
);
return ExePath;
}
int m_TotCount;
CImageList m_ImageList;
CListCtrl m_List;
HIMAGELIST hScreens = ImageList_Create(THUMWIDTH, THUMHEIGHT, ILC_COLOR32, 0, 1);
m_ImageList.Attach(hScreens);
m_list.SetImageList(&m_ImageList, LVSIL_NORMAL);
for (int i = 0; i<4; i++ )
{
CString ss;
ss.Format("%d",i);
HBITMAP bitm=LoadPicture( GetExeAbsolutePath()+ss+".jpg" );
if (bitm!=NULL)
{
m_TotCount=m_list.GetItemCount();
CBitmap* pImage = NULL;
pImage = new CBitmap();
pImage->Attach(bitm);
int imgP=m_ImageList.Add(pImage,RGB(0,0,0));
m_list.InsertItem(m_TotCount,ss+".jpg",imgP);
m_list.SetItemText(m_TotCount, 1, ss+".jpg");
}
}
//加载Jpg、Bmp图片,这个函数是关键代码!!!!!!!
HBITMAP CAddbmpDlg::LoadPicture(CString mFile)
{
CString pFSize;
WCHAR wpath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, mFile, -1, wpath, MAX_PATH);
IPicture* pPic;
OleLoadPicturePath(wpath, NULL, NULL, NULL, IID_IPicture,(LPVOID*)&pPic);
if (pPic==NULL) return NULL;
HBITMAP hPic = NULL;
pPic->get_Handle((UINT*)&hPic);
long nWidth=THUMWIDTH;
long nHeight=THUMHEIGHT;
long mWid,mHei;
pPic->get_Height(&mHei);
pPic->get_Width(&mWid);
HBITMAP hPicRet = (HBITMAP)CopyImage(hPic, IMAGE_BITMAP, nWidth, nHeight , LR_COPYDELETEORG);
HBRUSH hBrushBorder=::CreateSolidBrush(RGB(192, 192, 192));
HBRUSH hBrushBk=::CreateSolidBrush(RGB(255, 255, 255));
RECT rcBorder;
rcBorder.left=rcBorder.top=0;
rcBorder.right=THUMWIDTH;
rcBorder.bottom=THUMHEIGHT;
const float fRatio=(float)THUMHEIGHT/THUMWIDTH;
int XDest, YDest, nDestWidth, nDestHeight;
const float fImgRatio=(float)mHei/mWid;
if(fImgRatio > fRatio)
{
nDestWidth=(THUMHEIGHT/fImgRatio);
XDest=(THUMWIDTH-nDestWidth)/2;
YDest=0;
nDestHeight=THUMHEIGHT;
}
else
{
XDest=0;
nDestWidth=THUMWIDTH;
nDestHeight=(THUMWIDTH*fImgRatio);
YDest=(THUMHEIGHT-nDestHeight)/2;
}
CClientDC cdc(this);
HDC hDC=::CreateCompatibleDC(cdc.m_hDC);
HBITMAP bm = CreateCompatibleBitmap(cdc.m_hDC, THUMWIDTH, THUMHEIGHT);
HBITMAP pOldBitmapImage = (HBITMAP)SelectObject(hDC,bm);
::FillRect(hDC, &rcBorder, hBrushBk);
::FrameRect(hDC, &rcBorder, hBrushBorder);
HBITMAP hBmReturn= (HBITMAP)::SelectObject(hDC, pOldBitmapImage);
CDC hdcSrc, hdcDst;
hdcSrc.CreateCompatibleDC(NULL);
hdcDst.CreateCompatibleDC(NULL);
// Load the bitmaps into memory DC
CBitmap* hbmSrcT = (CBitmap*) hdcSrc.SelectObject(hPicRet);
CBitmap* hbmDstT = (CBitmap*) hdcDst.SelectObject(hBmReturn);
hdcDst.BitBlt(XDest,YDest,nDestWidth, nDestHeight, &hdcSrc,0,0,SRCCOPY);
pOldBitmapImage = (HBITMAP)SelectObject(hdcDst.m_hDC,bm);
DeleteDC(hDC);
DeleteObject(hBrushBorder);
DeleteObject(hBrushBk);
return pOldBitmapImage;
}
CString CAddbmpDlg::GetExeAbsolutePath()
{
char buffer[ MAX_PATH ];
CString ExePath = "";
GetModuleFileName( NULL, buffer, MAX_PATH );
ExePath=CString( buffer );
ExePath=ExePath.Left(
ExePath.ReverseFind( '\\' )>ExePath.ReverseFind( '/' )?
ExePath.ReverseFind( '\\' )+ 1:
ExePath.ReverseFind( '/' )+1
);
return ExePath;
}
发表评论
-
破解VS2008
2012-07-30 10:22 0对于VS2008 Team System 版本的破解 开始- ... -
无法解析的外部符号的 3 种可能
2011-08-19 13:21 27401. lib 文件未引入。可使用“#pragma commen ... -
Qt容器测试
2011-08-14 23:39 1018#include "vectortest.h&quo ... -
const_cast,reinterpret_cast,static_cast,dynamic_cast
2011-08-14 13:34 1102static_cast:用于非多态类型的转换。 dynami ... -
C++调用JAVA方法详解
2011-08-13 20:38 981http://public0821.iteye.com/blo ... -
Music Studio项目心得--JNI实现C++调用JAVA (转)
2011-08-13 19:38 2948http://blog.csdn.net/mdl13412/a ... -
让C++和Java相互调用(2)
2011-08-13 12:53 1154http://chnic.iteye.com/blog/236 ... -
JNI编程 —— 让C++和Java相互调用 (一)
2011-08-13 12:51 1243http://chnic.iteye.com/blog/228 ... -
ava生成dll工具ikvm.net
2011-08-08 14:24 1061IKVM.NET的是开源的基于.NET CLR 的Java虚拟 ... -
Vc中得combox的使用
2011-08-01 00:14 1761一、如何添加/删除Combo Box内容1,在Combo Bo ... -
QT中的元对象系统
2011-07-29 23:42 965Qt中的元对象系统是用来处理对象间通讯的信号/槽机制、运 ... -
C++中this指针的用法.
2011-07-29 23:20 3796this指针只能在一个类的成员函数中调用,它表示当前对象的地址 ... -
QT Designer
2011-07-28 21:44 1165(一)简单继承方式的实现1、QT Designer ... -
QWidget QMainWindow QDialog 之间的区别
2011-07-28 20:27 1167QWidget类是所有用户界面对象的基类。 窗口部件是 ... -
Qt达人
2011-07-27 23:19 984http://www.yafeilinux.com/ ... -
二十七、Qt数据库(七)QSqlRelationalTableModel(转)
2011-07-27 23:16 5793QSqlRelationalTableModel,该类为单张的 ... -
Qt的LineEdit 输入内容控制
2011-07-24 19:42 3397默认下,LineEdit接受任何字符输入,如何让LineEdi ... -
QT + VS2008 环境配置
2011-07-23 10:26 1779最近学习QT,配置环境 ... -
qt4:读取 access 数据库
2011-07-22 09:04 1061一个读取access的例子 1。---------- ... -
QT安装
2011-07-17 22:48 863http://hexlee.iteye.com/blog/49 ...
相关推荐
以下是如何在MFC应用中加载和显示JPEG图片的详细过程: 1. **引入额外库**:VC6.0本身并不包含对JPEG格式的支持。你需要引入一个第三方库,如JPEG Library(也称为libjpeg),来解析和加载这种格式的图片。将该库...
CImage是MFC扩展库ATL(Active Template Library)的一部分,它提供了对位图操作的封装,支持多种常见的图像格式,如BMP、JPEG、PNG等。在使用CImage之前,确保你的项目已经包含了 ATL/MFC 动态链接库(ATL/MFC DLLs...
总结起来,利用VC++的IPicture接口动态加载本地jpg、jpeg和bmp图片,涉及到的关键步骤包括:加载OLE库,调用LoadPicture函数获取IPicture接口,使用该接口在控件上绘制图片,并在不再需要时释放资源。这个方法不仅...
### VC 下加载 JPG/JPEG/GIF/PNG 图片最简单的方法 在Visual C++ (VC) 开发环境中处理图像时,经常会遇到需要加载各种格式图片(如 JPG、JPEG、GIF 和 PNG)的需求。本文将详细介绍如何在 VC 下简单有效地加载这些...
在VC++编程环境中,动态加载并显示JPEG或BMP图片是一项常见的任务,特别是在开发图形用户界面(GUI)应用程序时。本篇文章将详细讲解如何利用IPicture接口来实现这一功能,同时也会涉及到一些基本的图像处理知识。 ...
【VC/MFC缩略图列表源码】是一个用于在MFC(Microsoft Foundation Classes)环境中实现类似Windows系统中图片缩略图展示的项目。这个源代码实现了用户可以通过树形结构选择文件夹,然后程序会动态加载并显示所选...
在VC/VS中,我们可以使用MFC库中的CImage类来处理JPEG图像。CImage类提供了一套完整的图像操作接口,包括加载、保存、显示等。为了读取JPEG图像,我们需调用CImage的Load函数,传入JPEG文件的路径。例如: ```cpp ...
在本文中,我们将深入探讨如何使用Visual C++ 6.0(简称VC6)来处理图像,特别是关于打开BMP图像、转换为JPG格式、以及执行图像翻转和二值化操作。这些功能在图像处理领域具有广泛的应用,如图像分析、机器视觉和...
在VC++6.0中将JPG格式图片转换成BMP格式主要依赖于Microsoft的GDI+库。GDI+是Windows图形设备接口的一个扩展,提供了丰富的图形处理能力,包括图像加载、绘制和保存等功能。以下是一份详细的步骤指南: **一、配置...
CImage是MFC提供的一种便利类,它支持多种图像格式,包括JPEG(JPG)、BMP和GIF。在MFC应用程序中显示这些图像时,需要遵循一定的步骤,并注意内存管理,以防止内存泄露。 首先,我们来理解一下MFC中的Device ...
在Windows环境下,Visual C++(简称VC)是一个广泛使用的C++开发工具,它提供了丰富的功能来处理各种图像格式,如JPEG(Jpg)和Bitmap(Bmp)。在VC下进行Jpg到Bmp的转换是常见的图像处理需求,这通常涉及到图像文件...
7. **文件保存**:如果用户选择保存截图,程序需要使用`SaveBitmapToFile()`或`SaveImage()`等函数将位图保存为常见的图像格式,如BMP、JPEG或PNG。这通常涉及对图像格式的理解以及对应的编码和解码库。 8. **MFC...
// 加载图片 CBitmap bitmap; bitmap.LoadBitmapW(L"image.png"); // 用实际的图片路径替换 // 创建兼容DC和内存DC CDC memDC; memDC.CreateCompatibleDC(&dc); // 创建兼容位图 CBitmap* pOldBitmap = ...
CImage支持多种图像格式,如BMP、JPEG、PNG等,使得在程序中处理图像变得更加简单。 步骤如下: 1. **创建MFC多文档项目**: - 启动Visual Studio 2010,选择“文件”>“新建”>“项目”,然后在模板中选择“MFC...
本篇文章将详细讲解如何使用C++编程语言,特别是Microsoft Visual C++(VC)环境,来实现JPEG图像到BMP图像的转换。 首先,我们需要了解JPEG(Joint Photographic Experts Group)和BMP(Bitmap)这两种图像格式的...
MFC中,图像主要通过CImage类来处理,这是一个包含图像数据的类,支持多种图像格式,如BMP、JPEG、PNG等。CImage类提供了丰富的成员函数,可以完成图片的加载、保存、显示以及简单的编辑操作。 1. 图片加载:CImage...
在VC++ 6.0开发环境中,利用MFC(Microsoft Foundation Classes)库,可以实现对多种图像格式,如BMP、JPG、GIF、TIFF和RAW的支持。以下将详细讲解如何在VC++ 6.0中进行这些操作。 首先,你需要了解不同图像格式的...
2. **加载图片资源**:你需要将图片资源(如.jpg、.bmp等)添加到你的项目中。在资源编辑器中,选择Bitmap资源类型,然后导入图片文件。 3. **获取图片句柄**:使用LoadImage函数从资源中加载图片,获取到HBITMAP...
参考文档“VC实现打开BMP JPG或GIF图片(二)VCMFC打开图片.doc”,里面详细介绍了如何使用MFC打开和显示图像。 2. **使用GDI+**: GDI+是Windows图形设备接口的增强版,提供了更强大的图像处理功能。通过创建GDI+...
本文将深入探讨如何使用MFC中的自定义类`CPicture`来实现BMP和JPG图片的显示功能。这个`CPicture`类是基于MFC的窗口类`CWnd`进行扩展的,旨在提供一种简洁的方式处理图像文件。 首先,我们需要理解`CPicture`类的...