这是解决多function打印机驱动程序的最后一招。 我想渲染到一个兼容的位图,然后旋转它之前或复制到打印机DC。
我熟悉这个推荐GDI +的前一个问题 ,但是我很想知道是否只有使用GDI的答案。
移动语义和窗口句柄。 DeleteObject安全处理?
将TrueType字形转换为PNG图像?
创build内存设备上下文…为一个位图,而不是一个设备(不显示)
高效地获取windows桌面的屏幕截图
如何直接在windows中分配vIDeo卡内存?
这些技术都应该工作:
PlgBlt ,其“执行颜色数据的位从源设备上下文中的指定矩形到目标设备上下文中的指定平行四边形的位块传送”,旋转平行四边形的坐标
SetWorldtransform ,传入旋转矩阵和普通BitBlt 。
请注意,在这两种情况下,源DC中不应该有旋转转换,只有目的地。
恐怕我现在还不能给你一个代码示例,但是一些使用Google的例子也提供了一些如何使用这些函数来旋转任意度数的示例,您可以将其修改为硬编码为90度:
使用PlgBlt (原谅这里的语言…这是VB)
使用SetWorldtransform和BitBlt 。 请注意,如果你的代码在其他地方修改了转换(例如,任何VCL的TGraphicControl后裔将在其Paint方法中完成此 *** 作,并且很可能MFC和其他常见的WinAPI包装器可能也会这样做),则应该使用GetWorldtransform来保存当前的转换,应用你的ModifyWorldtransform而不是设置(覆盖)当前的转换。
在查找这些示例时,我遇到了一个有趣的,非常古老的Microsoft支持问题,显示如何绘制到旋转或非矩形区域 。 我怀疑,为了轮换,这个代码几乎不如其他功能之一。
我不确定这些数据与使用GDI +相比是否简单快捷
总结以上是内存溢出为你收集整理的快速/简单的方法将Windows位图旋转90度?全部内容,希望文章能够帮你解决快速/简单的方法将Windows位图旋转90度?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)