有没有人知道如何在使用基于打印机HDC的Graphics上下文创建时,成功地绘制具有alpha通道的位图,使用Graphics :: DrawImage()?打印机驱动程序通常不支持alpha混合-是否有替代方法将所有内容呈现为离屏位图,然后将其发送到打印机。这通常是不可行的,特别是对于大型格式打印机的高分辨率打印。
感谢您提出这个问题,因为我正考虑尝试使用GDIplus来解决我仍然面临的有关正确打印图案钻石形状的问题。虽然现在alpha-blending似乎可以在大多数打印机上工作,但仍然有一些打印机在钻石上绘制黑色角落。
除了alpha-blending之外,我还尝试使用钻石形状的剪辑区域来包围该形状,但通常不支持alpha-blending的打印机似乎也不支持多边形剪辑区域。我尝试从打印机DC复制到位图中以准备在其上方绘制钻石,希望这将允许我将之前存在的内容(在角落处)放回去。这也行不通,因为问题似乎归结于打印机驱动程序实际上并不知道正在打印页面的哪个部分。
在我的情况下,我的下一个计划是尝试使用大型位图画刷直接向打印机HDC绘制钻石填充。我怀疑对于某些打印机来说,这也可能会失败。听起来这可能不适用于您正在做的事情。