【发布时间】:2019-12-26 00:19:57
【问题描述】:
我在 C# WinForms 中制作了一个简单的程序,类似于 MSPaint。我目前卡住的一件事是我想从我正在绘制的 BufferedGraphics 制作 Bitmap 然后保存它。但是当我保存它时,文件中没有任何内容,它只是一个空白图像。
代码如下:
private BufferedGraphics picture;
public Form1()
{
InitializeComponent();
picture = BufferedGraphicsManager.Current.Allocate(MainPanel.CreateGraphics(), MainPanel.DisplayRectangle);
picture.Graphics.FillRectangle(Brushes.White, MainPanel.DisplayRectangle);
picture.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
picture.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
}
private void Draw()
{
if (mouseDown)
{
Point cursorPos = MainPanel.PointToClient(Cursor.Position);
picture.Graphics.FillEllipse(selectedColor, cursorPos.X - slider.Value / 2, cursorPos.Y - slider.Value / 2, slider.Value, slider.Value);
picture.Render();
}
}
private void Save()
{
Bitmap result = new Bitmap(MainPanel.Width, MainPanel.Height, picture.Graphics);
result.Save("image.png", System.Drawing.Imaging.ImageFormat.Png);
}
【问题讨论】:
-
好的文档说什么关于位图构造函数的第三个参数(图形)...我没有看到 将图形复制到位图 ...因为它不能图形对象没有'不包含任何图纸 - 你可以在上面画画,但不能从中获取图纸