0

我有一个使用 Excel 互操作的 CopyPicture 方法创建的 HBITMAP。出于某种原因,这会在图像的顶部和左侧边缘放置一个灰色边框,即使它们不是电子表格的一部分。有人能告诉我从图像中删除这些边框的简单方法吗?我想到的方法是获取字节数组中的位,从该字节数组中删除第一行和第一列,然后将数组转换回位图。有没有更简单或更好的方法?就像一个简单的修剪功能?

4

1 回答 1

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.

于 2012-04-20T11:48:36.220 回答