源代码如下CFileDialog dlg(TRUE,NULL,L"支持各种图片",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
L"JPEG(*.JPG,*.JPE),BMP(*.BMP,*.RLE),TIFF(*.TIF)|*.BMP;*.RLE;*.JPG;JPE;*.TIF;*.TIFF|BMP(*.BMP,*.RLE)|*.BMP;*.RLE|JPEG(*.JPG,*.JPE)|*.JPG;JPE|TIFF(*.TIF)|*.TIF;*.TIFF|*.*|");
int result = dlg.DoModal();
if( IDOK == result )
{
CString filename = dlg.GetFileName();
if(m_pTargetPic != NULL) delete m_pTargetPic;
m_pTargetPic =new Bitmap(filename);
}
请问这样我的m_pTargetPic是怎样创建成功的? 我导入的是bmp 还有jpg的图片它都能成功创建,它是怎样获取图片信息的啊? 请教高手解答!!!
L"JPEG(*.JPG,*.JPE),BMP(*.BMP,*.RLE),TIFF(*.TIF)|*.BMP;*.RLE;*.JPG;JPE;*.TIF;*.TIFF|BMP(*.BMP,*.RLE)|*.BMP;*.RLE|JPEG(*.JPG,*.JPE)|*.JPG;JPE|TIFF(*.TIF)|*.TIF;*.TIFF|*.*|");
int result = dlg.DoModal();
if( IDOK == result )
{
CString filename = dlg.GetFileName();
if(m_pTargetPic != NULL) delete m_pTargetPic;
m_pTargetPic =new Bitmap(filename);
}
请问这样我的m_pTargetPic是怎样创建成功的? 我导入的是bmp 还有jpg的图片它都能成功创建,它是怎样获取图片信息的啊? 请教高手解答!!!
解决方案 »
- VC怎样判断Access的某张表为空
- C++两道面试题,有兴趣的来看看,看你能不能做对
- 关于计算程序执行时间的问题
- 谁帮个忙 要做个自动更新
- CDialog怎样去除标题栏和菜单栏(急)?
- 两个线程启动后出现Unhandled exception in ....exe(MSVCRTD.DLL)0xC0000005LAccess Violation错误
- 新手求助,如何在tab control的不同标签下布置界面
- cvs
- 为什么Ole容器的运行速度这么慢?有好的解决办法吗?
- 急!!请教vc下编译可以在DOS下运行的socket客户端程序的方法或函数库
- CDaoWorkspace::RepairDatabase用法
- SetScrollSizes调用错误 没有定义
m_pTargetPic =new Bitmap(filename);//filename是它打开的文件名
代码你没贴出来。有多种读取图像的方法,一种是根据输入参数(比如文件名filename的后面三个字母,判断文件类型,然后分析其结构。。一种更简单的方法,是统一用IPicture控件(内置在windows里)。 你没给出 Bitmap源代码,无法知道你程序是如何读的。答对了给分哦。
如果有兴趣可以找这些都文件格式定义及编解码方式自己来处理
CFileDialog dlg(TRUE,NULL,L"支持各种图片",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
L"JPEG(*.JPG,*.JPE),BMP(*.BMP,*.RLE),TIFF(*.TIF)|*.BMP;*.RLE;*.JPG;JPE;*.TIF;*.TIFF|BMP(*.BMP,*.RLE)|*.BMP;*.RLE|JPEG(*.JPG,*.JPE)|*.JPG;JPE|TIFF(*.TIF)|*.TIF;*.TIFF|*.*|");//CFileDialog初始化,支持扩展名,BMP,JPG,TIF等等,然后缩写也支持
int result = dlg.DoModal();//简历对话框
if( IDOK == result )//如果成功,则进入下面代码,失败则跳出
{
CString filename = dlg.GetFileName();//把刚才CFileDialog获得图片路径附值filename
if(m_pTargetPic != NULL) delete m_pTargetPic;//判断m_pTargetPic 内容为空(为了填充)
m_pTargetPic =new Bitmap(filename); //将刚才的filename路径的位图初始化导入m_pTargetPic
========
这里的创建的工作其实就是说由new Bitmap(filename)来完成的,至于内部是如何转化的,关键就在于Bitmap这个类的构造函数是如何处理的了。
Bitmap是VS自带的一个类,在gdiplusheaders.h 中。。请问从图片中读数据,对于BMP,JPG有什么不同吗?
getfilename知识获取文件名如01.bmp,没有路径啊
但是请问我只提供一个文件名如01.jpg,它就能完全构造出一个Bitmap对象,还包含相应的图像信息吗?
谢谢解答
谢谢解答
=====================
你提供了一个01.jpg这个文件名,这个类读这个文件,根据文件头来区分文件的类型,然后从文件中解析出数据,构造出Bitmap对象,你提供的虽然是文件名,但是在构造Bitmap对象时,它会读取这个文件中的内容。
噢 就是等于说这个类最终还是要从01.jpg这个文件中读取数据,但是怎样读取,怎样构造出bitmap对象是完全由GDI实现的,可以这样理解吗?
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c: est est1.txt 那个确实只得到文件名啊