当前位置:  开发笔记 > 编程语言 > 正文

C++:在Windows上使用C++读取和写入BMP文件的最简单方法是什么?

如何解决《C++:在Windows上使用C++读取和写入BMP文件的最简单方法是什么?》经验,为你挑选了3个好方法。

我想加载一个BMP文件,在内存中对它进行一些操作,并在Windows上使用C++输出一个新的BMP文件(Win32 native).我知道ImageMagick和它的C++绑定Magick ++,但我认为这对于这个项目来说太过分了,因为我目前对其他文件格式或平台不感兴趣.

在读取和写入BMP文件的代码设置方面,最简单的方法是什么?答案可能是"只使用Magick ++,这是最简单的."

相关问题:什么是最好的图像处理库?



1> Gerald..:

在为Windows开发时,我通常只使用ATL CImage类



2> sEver..:

EasyBMP如果你想要bmp支持.我很简单,可以在几分钟内开始使用,如果您需要它,它就是多平台.



3> Chris Becke..:

BMP文件由3个结构组成.BITMAPFILEHEADER后跟一个BITMAPINFO,后跟一个字节数组.

使用Win32加载BMP文件的绝对最简单的方法是调用CreateFile,GetFileSize,ReadFile和CloseHandle将文件图像加载到内存中,然后将指向缓冲区的指针转换为BITMAPFILEHEADER并从那里开始.

我撒谎,更简单的方法是调用LoadImage.确保传递LR_DIBSECTION标志以确保GDI不会将加载的图像转换为主显示器配置的任何bitdepth.这样做的好处是可以为您提供一个可以选择DC的HBITMAP,因此可以使用GDI进行全局绘制.

但是要保存它,没有捷径.您需要准备一个BITMAPFILEHEADER,写出来,填写BITMAPINFO结构,写出来,然后是实际的像素数据.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有