我有两个问题:
1)我有一个 PictureBox
,它的 Dock 属性设置为 Fill。当我调整 Form
的大小时,我无法在扩展部分的 PictureBox
上创建图形。这是什么问题?
2)我想将在 PictureBox
上创建的图形转换为 Bitmap
并保存为 *.JPG 或 *.bmp。如何做到这一点?
我有两个问题:
1)我有一个 PictureBox
,它的 Dock 属性设置为 Fill。当我调整 Form
的大小时,我无法在扩展部分的 PictureBox
上创建图形。这是什么问题?
2)我想将在 PictureBox
上创建的图形转换为 Bitmap
并保存为 *.JPG 或 *.bmp。如何做到这一点?
Graphics g = pictureBox1.CreateGraphics();
Bitmap bitMap = Bitmap.FromHbitmap(g.GetHdc());
bitMap.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
更好的做法是,如果pictureBox没有修改图像,您可以直接从pictureBox控件获取图像。
pictureBox1.Image.Save("path", System.Drawing.Imaging.ImageFormat.Jpeg);
我用这个方法,效果很好...
private void SaveControlImage(Control ctr)
{
try
{
var imagePath = @"C:\Image.png";
Image bmp = new Bitmap(ctr.Width, ctr.Height);
var gg = Graphics.FromImage(bmp);
var rect = ctr.RectangleToScreen(ctr.ClientRectangle);
gg.CopyFromScreen(rect.Location, Point.Empty, ctr.Size);
bmp.Save(imagePath);
Process.Start(imagePath);
}
catch (Exception)
{
//
}
}
private void pictureBox1_SizeChanged(object sender, EventArgs e)
{
if ((pictureBox1.Image != null))
{
pictureBox1.Image = new Bitmap(pictureBox1.Image, pictureBox1.Size);
}
}
保存图片使用:
pictureBox1.Image.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);
1) 你的描述非常模糊。你是否收到异常?它是否显示错误结果?发生了什么?
2) 你需要从PictureBox获取图像并使用其保存方法。