C++ 生成BMP图像,但显示为反转
我已经通过winddk生成了bitmap.dll 选择“打印到文件驱动程序”手动添加为打印机驱动程序 使用这个,我使用文件中的“打印”命令创建文档的图像 我能够创建图像并查看它,但问题是我得到了反转(镜像)图像C++ 生成BMP图像,但显示为反转,c++,image,driver,printers,C++,Image,Driver,Printers,我已经通过winddk生成了bitmap.dll 选择“打印到文件驱动程序”手动添加为打印机驱动程序 使用这个,我使用文件中的“打印”命令创建文档的图像 我能够创建图像并查看它,但问题是我得到了反转(镜像)图像 有人能解决这个问题吗?由于我在注释(以正确生成标题)时遇到问题,这几行。与设备无关的位图被记录为在内存中布局,底线位于缓冲区的开头。这是一个笛卡尔坐标系的实验,由OS/2的设计者在开发Windows3的同时与微软合作 有两种可能的修复方法: 将缓冲区倒置生成 许多采用BITMAPINFO
有人能解决这个问题吗?由于我在注释(以正确生成标题)时遇到问题,这几行。与设备无关的位图被记录为在内存中布局,底线位于缓冲区的开头。这是一个笛卡尔坐标系的实验,由OS/2的设计者在开发Windows3的同时与微软合作 有两种可能的修复方法:
是的,我这样做了,但通过biHeight的负值,图像标题会被修改,因此图像无法加载到我的应用程序中。您需要解释修改后的图像标题如何抑制加载。您正在尝试将其保存到磁盘吗?我认为那是不正确的。如果要将BMP持久化到磁盘,它必须是自底向上的。
cScans = pOemPDEV->bmInfoHeader.biHeight;
// Flip the biHeight member so that it denotes top-down bitmap
pOemPDEV->bmInfoHeader.biHeight = cScans * -1;