• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Rectangle(Bitmap)の幅と高さ)

Rectangle(Bitmap)の幅と高さ

このQ&Aのポイント
  • Rectangle構造体で指定するBitmapの範囲は、(Rectangle.Left + Rectangle.Width - 1)×(Rectangle.Top + Rectangle.Height - 1)の範囲となる。
  • BitmapのWidthとHeightも同様に指定されるが、実際の動作には影響はほとんどない。
  • LockBitsとUnlockBitsを使用してBitmapのpixel情報をコピーするコードを書く際に、Rectangleで指定する範囲やBitmapの幅と高さについて気になることがある。

質問者が選んだベストアンサー

  • ベストアンサー
  • shibucin
  • ベストアンサー率38% (16/42)
回答No.2

Rectangle構造体の引数で指定される幅と高さは、指定された左上隅の座標を始点として、指定された幅と高さの長方形領域を表します。したがって、引数で指定された値は、始点から幅または高さ分だけ右に進んだ位置や下に進んだ位置を表します。つまり、Rectangle.WidthとRectangle.Heightは、それぞれ幅と高さの値であり、Rectangle.LeftとRectangle.Topは、始点のX座標とY座標を表します。したがって、以下のようにRectを指定することができます。 Dim Rect as Rectangle = New Rectangle(1, 1, 1, 1) これは、左上隅が座標(1, 1)の1x1ピクセルの長方形を表します。Bitmapの幅と高さも同様に、Bitmap.WidthとBitmap.Heightは、それぞれビットマップの幅と高さを表します。したがって、Rectangle構造体で指定された長方形領域がBitmapの領域を超えることがないようにする必要があります。

ddtddtddt
質問者

お礼

>・・・Rectangle構造体で指定された長方形領域がBitmapの領域を超えることがないようにする必要があります。  まさにBinding矩形を作る時に、1pixel分どうしよう?という話でした。最初はアンマネージメモリでの話なので、Bitmapをはみ出すRectangleでもいいんじゃねっ?、って事で気楽に動かしたら、実行時エラーになりました(^^;)。  考え方が確認できました。ありがとうございます。

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8469/18132)
回答No.1

BitmapクラスのLockBitsメソッドに渡すRectangle構造体のWidth,Heightプロパティは画素数で指定するようです。通常はectangle構造体のWidth, Heightプロパティは距離=画素数-1となっています。 PictureBoxなどのコントロールや、BitmapクラスのWidth, Heightプロパティはやはり画素数です。

ddtddtddt
質問者

お礼

 そのものずばりの回答、ありがとうございます。  ただベストアンサーは、色々気を使って頂いた#2さんへ送りたいと思います。ご容赦下さい。

関連するQ&A

専門家に質問してみよう