次のコードを実行すると:
private void button1_Click(object sender, EventArgs e)
{
Bitmap b = new Bitmap(300, 400);
using (Graphics g = Graphics.FromImage(b))
{
g.FillRectangle(Brushes.Black, new Rectangle(0, 0, 300, 400));
}
b.RotateFlip(RotateFlipType.Rotate90FlipNone);
using (Graphics g2 = Graphics.FromImage(b))
{
g2.DrawRectangle(new Pen(Color.White, 7.2f), 200, 100, 150, 100);
}
using (Graphics g3 = this.panel1.CreateGraphics())
{
g3.DrawImage(b, 0, 0);
}
}
私は以下を取得します:
代替テキスト http://www.freeimagehosting.net/uploads/2c309ec21c.png
ノート:
画像を回転させてから、画像の元の寸法を超える長方形を描画した場合にのみ発生します。
長方形は元の画像の幅に切り捨てられません。長方形の右端だけが描画されません。
これは、さまざまなシナリオで発生します。私が最初に気付いたのは、はるかに複雑なアプリでした。問題を簡単に説明するために、このアプリを作成しただけです。
誰かが私が間違っていることを見ることができますか?