0

ExcelInteropの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 に答える