0

私はいくつかのコードを取り、それを数行に減らしましたが、それでも私が抱えているエラーを再現しています。この場合、サイズが 448x298 の画像を取り、それを 600x450 の白い背景の上に重ねようとしています。

そのため、白い背景で 600x450 の画像を取得し、その上に元の画像を右上隅から配置することを期待しています。そして、元の画像が元のサイズのままであることを期待しています。代わりに、元の画像は 448x298 から約 (1 ピクセルまたは 2 ピクセル) 143x95 になります。

これを行っている縮小コードは次のとおりです。

                System.Drawing.Image oImage = new Bitmap(600, 450);
                Graphics oGraphic = Graphics.FromImage(oImage);
                oGraphic.FillRectangle(Brushes.White, 0, 0, 600, 450);
                oGraphic.DrawImage(image, new Point(0,0));
                return (Bitmap)oImage;
4

1 に答える 1

1

ターゲットサイズを指定する必要があります。選択したオーバーロードによって、イメージがソース dpi からターゲット dpi にスケーリングされます。別の質問で説明されているように、これを行う必要があります。

System.Drawing.Image oImage = new Bitmap(600, 450);
Graphics oGraphic = Graphics.FromImage(oImage);
oGraphic.FillRectangle(Brushes.White, 0, 0, 600, 450);
oGraphic.DrawImage(image, 0,0, image.Width, image.Height);
return (Bitmap)oImage;
于 2013-11-06T22:04:38.133 に答える