私は描画する必要がある解像度6000x4000のPNGイメージを持っています。だから私はサイズ1280x800のpictureBoxにイメージを読み込みます。それを描画した後、元の解像度6000x4000でPNGイメージを保存する必要があります。だから私はWinFormsでサイズ変更されたビットマップイメージを元のサイズに戻す
btm = new Bitmap(6000, 4000);
image = Graphics.FromImage(btm);
g.DrawImage(btm, Point.Empty);
を使用してサイズ6000x4000の新しいビットマップにそれをリロードし
btm.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
は、今私は、解像度6000x4000の白い背景のpng画像でなく、編集後の画像で終わる使用してそれを保存します1280x800このようにSaved Image
イメージを元の(6000x4000)サイズに戻すにはどうすればよいですか。ありがとうございました。
また、私codebelowこの程度
private void drawImage(string imgLocation)
{
Bitmap b = new Bitmap(imgLocation);
////test
pictureBox1.Height = 800;
pictureBox1.Width = 1280;
g = pictureBox1.CreateGraphics();
btm = new Bitmap(6000, 4000);
image = Graphics.FromImage(btm);
image.CompositingMode = CompositingMode.SourceCopy;
image.CompositingQuality = CompositingQuality.HighQuality;
image.InterpolationMode = InterpolationMode.HighQualityBicubic;
image.SmoothingMode = SmoothingMode.HighQuality;
image.PixelOffsetMode = PixelOffsetMode.HighQuality;
image.Clear(Color.White);
image.DrawImage(b, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
//image.DrawImage(btm, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
//g.DrawImage(btm, Point.Empty);
g.DrawImage(btm, new Rectangle(0, 0, 6000,4000));
}
これは簡単です。 DrawImageには多くのオーバーロードがあります。宛先のサイズを指定できるものもあります。 –
ありがとう、私はそれを調べます。可能であれば、これを達成するためのいくつかの例を教えてください。 – SwamJay
** 1)**もしあなたが 'CreateGraphics()'を呼び出すなら、それは間違っています。 ** 2)**描画するときにビットマップを拡大するには、 'Graphics'オブジェクトの変換を設定するか、描画の対象矩形を指定できる' DrawImage() 'オーバーロードを使用します。 ** 3)**あなたが投稿したコードは、 'CreateGraphics()'を呼ぶ以外にも変です。 'bt'を' btm'に描画しますが、 'btm'を' PictureBox'コントロールに戻そうとしていますか? ** 4)**あなたが良い答えをしたいなら、問題を確実に再現する良い[mcve]を提供する必要があります。 –