私は基本的な描画アプリケーションに取り組んでいます。ユーザーに画像の内容を保存してほしい。
使うべきだと思った
System.Drawing.Drawing2D.GraphicsState img = drawRegion.CreateGraphics().Save();
しかし、これはファイルに保存するのに役立ちません。
このアプローチを使用して画像を保存しようとすることができます
SaveFileDialog dialog = new SaveFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
int width = Convert.ToInt32(drawImage.Width);
int height = Convert.ToInt32(drawImage.Height);
Bitmap bmp = new Bitmap(width,height);
drawImage.DrawToBitmap(bmp, new Rectangle(0, 0, width, height);
bmp.Save(dialog.FileName, ImageFormat.Jpeg);
}
このコードで試すことができます
Image.Save("myfile.png",ImageFormat.Png)
コントロールのグラフィックスで描画する場合、キャンバスに描画するすべてをビットマップに描画する必要がありますが、ビットマップは描画するコントロールの正確なサイズである必要があることに留意してください。
Bitmap bmp = new Bitmap(myControl.ClientRectangle.Width,myControl.ClientRectangle.Height);
Graphics gBmp = Graphics.FromImage(bmp);
gBmp.DrawEverything(); //this is your code for drawing
gBmp.Dispose();
bmp.Save("image.png", ImageFormat.Png);
または、コントロールのDrawToBitmap
メソッドを使用できます。このようなもの:
Bitmap bmp = new Bitmap(myControl.ClientRectangle.Width, myControl.ClientRectangle.Height);
myControl.DrawToBitmap(bmp,new Rectangle(0,0,bmp.Width,bmp.Height));
bmp.Save("image.png", ImageFormat.Png);
画像を保存し、現在のディレクトリアプリケーションにファイルを保存して、ファイルを任意のディレクトリに移動できます。
Bitmap btm = new Bitmap(image.width,image.height);
Image img = btm;
img.Save(@"img_" + x + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
FileInfo img__ = new FileInfo(@"img_" + x + ".jpg");
img__.MoveTo("myVideo\\img_" + x + ".jpg");