布局:
我正在使用第三方控件来扫描文档。我有扫描图像时发生的事件(主要用于添加图像注释)。该活动仅向我提供了一个名为 .PAhDC 的属性。此属性是DC的句柄,用于在将图像写入文件之前存储该图像。因此,我可以在将图像写入文件之前对其进行更改。
预期结果:
我想在图像的最顶部添加1/4英寸(比如100像素)的白色空格线。如果我的原始图像是200x200(WxH),那么我的新最终图像需要为200x300。
问题和其他想法:
如何只知道它的DC手柄,我怎么改变现有的图像?我正在考虑做以下事情......
注意:我希望尽可能使用MANAGED CODE执行此操作。使用SelectObject()是我能想到的唯一方法,但它当然是非托管代码...:/
答案 0 :(得分:0)
当然,您可以在托管代码中执行此操作。所有P / Invoke声明都可以从任何体面的搜索引擎中获得。
答案 1 :(得分:0)
您无法与位图和DC的所有者合作。
DeviceContext纯粹是底层DIB /位图的视口,没有大小或尺寸的概念(超出裁剪区域)虽然你可以创建一个新的位图并将其选择到DC中,但很可能应用程序将忽略您已完成的操作并使用它创建的DIB。 最终结果将是GDI对象泄漏,并且不会更改底层图像。
要做你要求的事情,你需要与其他代码完全合作,并添加一个允许你替换基础数据的方法。