如何在图像上书写文字

时间:2014-04-02 20:25:58

标签: c# image-processing bitmap

我要做的是从连接到我的计算机的网络摄像头保存图片,在该图片的顶部写一个字符串,然后保存文件。我的程序运行的方式首先是拍照,然后我想能够在它上面写。这是我到目前为止在我保存的图像上编写的代码,但它抛出了一个'ExternalException'。

Bitmap myBitmap = new Bitmap("C:\\Users\\me\\Desktop\\CamApp\\" + filename + ".jpeg");
Graphics g = Graphics.FromImage(myBitmap);
g.DrawString("HELLO", new Font("Tahoma", 40), Brushes.White, new PointF(0, 0));
myBitmap.Save("C:\\Users\\me\\Desktop\\CamApp\\" + filename + ".jpeg",
    System.Drawing.Imaging.ImageFormat.Jpeg);

提前致谢。

1 个答案:

答案 0 :(得分:2)

在另一个问题中讨论了您所看到的问题:Free file locked by new Bitmap(filePath)

当您使用带有文件名的Bitmap构造函数时,文件将被锁定,直到Bitmap被释放。这可以防止您覆盖该图像文件。

您可以在上述问题上使用@ Brian的答案加载Bitmap而不会将文件锁定:https://stackoverflow.com/a/14837330/34208

使用此方法加载图片后,您就可以保存原始文件。

使用代码示例进行编辑:

替换你的行...

Bitmap myBitmap = new Bitmap("C:\\Users\\me\\Desktop\\CamApp\\" + filename + ".jpeg");

Bitmap myBitmap = FromFile(@"C:\Users\me\Desktop\CamApp\" + filename + ".jpeg");

并确保从链接的答案中复制FromFile方法。