2012-04-20 16 views
0

Excel InteropのCopyPictureメソッドを使用して作成したHBITMAPがあります。何らかの理由で、スプレッドシートの一部ではないにもかかわらず、イメージの上端と左端に灰色の境界線が表示されます。誰かが私にイメージからこれらの罫線を取り除く簡単な方法を教えてもらえますか?私が考えた方法は、バイト配列をバイト配列から取り出し、このバイト配列から最初の行と列を削除し、次に配列をビットマップに変換することです。より簡単で良い方法がありますか?単なるトリム機能のように?HBITMAPからの枠線の削除

+0

XY問題のように聞こえます。最初にXに取り組み、CopyPictureに別のサイズを渡すとどうなるか確認してください。 –

+0

それは私がcopypictureに渡す私のサイズと違いはありません – Jonnster

答えて

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); 

これはrsrcビットマップを作物やにコピーを配置しますresult

+0

コードはC#/ .NETのように見えます。私はタグに記載されているようにC++を使用しています(.NETはありません) – Jonnster

+0

あなたは正しいです。私は参照用に編集しました:[Bitmap :: Clone Method(Rectangle、PixelFormat)](http://msdn.microsoft.com/de-de/library/ms141944.aspx#Y0) –

+0

まだ使用しています。ネット。そして、記録のために、それはビットマップの左と上を常に0,0に設定しているので、ビットマップの左と上をトリミングしません。それは実際に右と下を切り取るでしょう。 – Jonnster

関連する問題