我有一个HBITMAP,它是使用Excel Interop的CopyPicture方法创建的。出于某种原因,这会在图像的顶部和左侧边缘放置灰色边框,即使这些边缘不是电子表格的一部分。有人能告诉我一个简单的方法从图像中删除这些边框。我想到的方法是获取bytearray中的位,从该字节数组中删除第一行和第一列,然后将数组转换回位图。有更简单或更好的方法吗?就像一个简单的修剪功能?
答案 0 :(得分:1)
如果您知道边框的尺寸,则可以通过创建带有clone
的副本来裁剪位图,并应用新的边界框:
int croppedWidth = x;
int croppedHeight = y;
Rectangle r = Rectangle(0, 0, croppedWidth, croppedHeight);
System::Drawing::Imaging::PixelFormat format = src->PixelFormat;
Bitmap^ result = src->Clone(r, format);
这会将src
位图与r
一起裁剪,并将副本放入result
。