生成BMP图像但显示倒置

时间:2011-01-12 12:57:14

标签: c++ image driver printers

我已经通过winddk生成了bitmap.dll。

手动添加为选择打印到文件驱动程序的打印机驱动程序。

使用此功能,我使用文件中的print命令创建文档的图像。

我能够创建图像并查看它,但问题是我得到倒置(镜像)图像。

cScans = pOemPDEV->bmInfoHeader.biHeight;
// Flip the biHeight member so that it denotes top-down bitmap 
pOemPDEV->bmInfoHeader.biHeight = cScans * -1;

有没有人解决此代码的问题?当我发表评论(以正确生成标题)时,我遇到了这个问题。

1 个答案:

答案 0 :(得分:2)

设备无关位图记录在内存中,底行位于缓冲区的起始位置。它是由OS / 2的设计人员进行的笛卡尔坐标实验,他们在开发Windows 3的同时与微软合作。

有两种可能的解决方法:

  1. 颠倒生成缓冲区。
  2. 许多采用BITMAPINFO的Windows API将负biHeight值视为自上而下的DIB。