C# 使用给定的hDC向图像顶部添加空白
布局: 我正在使用第三方控件扫描文档。扫描图像时会发生一个事件(主要用于在图像中添加注释)。该事件仅为我提供一个名为.PAhDC的属性。此属性是在将图像写入文件之前存储图像的DC的句柄。因此,我可以在图像写入文件之前对其进行更改 预期结果: 我只想在图像的最上面加一条1/4英寸(比如说100像素)的空白线。如果我的原始图像是200x200(WxH),那么我的新最终图像需要是200x300 问题和其他想法: 如何在只知道现有图像的DC句柄的情况下更改该图像?我正在考虑做如下的事情C# 使用给定的hDC向图像顶部添加空白,c#,image,image-processing,gdi+,kofax,C#,Image,Image Processing,Gdi+,Kofax,布局: 我正在使用第三方控件扫描文档。扫描图像时会发生一个事件(主要用于在图像中添加注释)。该事件仅为我提供一个名为.PAhDC的属性。此属性是在将图像写入文件之前存储图像的DC的句柄。因此,我可以在图像写入文件之前对其进行更改 预期结果: 我只想在图像的最上面加一条1/4英寸(比如说100像素)的空白线。如果我的原始图像是200x200(WxH),那么我的新最终图像需要是200x300 问题和其他想法: 如何在只知道现有图像的DC句柄的情况下更改该图像?我正在考虑做如下的事情 创建一个新的DC
注意:我希望尽可能多地使用托管代码。使用SelectObject()是我能想到的唯一方法,但它当然是非托管代码…:/ 当然,您可以在托管代码中执行此操作。所有的P/Invoke声明都可以从任何一个合适的搜索引擎中获得
- 创建新DC时,请确保它与原始DC兼容
- 创建新位图时,请确保它与DC兼容
要执行您要求的操作,您需要与其他代码充分合作,并添加一个允许您替换底层数据的方法。我永远无法让它工作,正如Deanna所说,无论我对DC中的位图做什么(替换或不替换),我的更改都会被忽略,因为“新建”位图在父函数中被忽略。。。或者,我猜是因为当我尝试交换位图时,它发生了不适。