【发布时间】:2015-09-18 00:38:11
【问题描述】:
目前我正在学习使用图形方法绘制条形码并将其处理为位图。但是当我要保存的时候,虽然可以保存成功,但是结果是黑色的,什么都看不到。到底是什么问题?
private void buttonDraw_Click(object sender, EventArgs e)
{
System.Drawing.Graphics g = this.pictureBoxBarcode.CreateGraphics();
g.FillRectangle(new System.Drawing.SolidBrush(System.Drawing.SystemColors.Control),
new Rectangle(0, 0, pictureBoxBarcode.Width, pictureBoxBarcode.Height));
ean13.DrawEan13Barcode(g, new System.Drawing.Point(0, 0));
g.Dispose();
}
这是我的保存功能
public void Save(Bitmap original)
{
// Displays a SaveFileDialog so the user can save the Image
// assigned to Button2.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif|Png Image|*.png";
saveFileDialog1.Title = "Save an Image File";
saveFileDialog1.ShowDialog();
// If the file name is not an empty string open it for saving.
if (saveFileDialog1.FileName != "")
{
// Saves the Image via a FileStream created by the OpenFile method.
System.IO.FileStream fs =
(System.IO.FileStream)saveFileDialog1.OpenFile();
// Saves the Image in the appropriate ImageFormat based upon the
// File type selected in the dialog box.
// NOTE that the FilterIndex property is one-based.
switch (saveFileDialog1.FilterIndex)
{
case 1:
original.Save(fs,
System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case 2:
original.Save(fs,
System.Drawing.Imaging.ImageFormat.Bmp);
break;
case 3:
original.Save(fs,
System.Drawing.Imaging.ImageFormat.Gif);
break;
case 4:
original.Save(fs,
System.Drawing.Imaging.ImageFormat.Png);
break;
}
fs.Close();
}
}
我无法提供任何图片来证明我的声誉不足以证明这一点。对不起。
【问题讨论】:
-
我怀疑有人可以在不看代码的情况下回答这个问题。
-
@SteveFerg 我想知道那个绘图区是什么?画布、位图或其他东西?
-
你有十几种不同的选择,看看BitMap类定义:msdn.microsoft.com/en-us/library/…
-
您有两个选择: 使用它的 Paint 事件和它的 e.Graphics 对象写入到 PictureBox 控件的表面。 或者您可以使用从它创建的图形对象绘制到位图中。 - 相反,你混合了两种方式,这是行不通的! - 有关这两个选项的更多信息,请参阅here..!