如何从文本字符串创建图像

时间:2011-09-08 14:57:13

标签: c# graphics ocr

我执行屏幕截图并获取包含文本的图像。让我们考虑图像中的文字 - “你好”。

现在,我想从文本'Hello''创建'一个图像,它具有与文本相同的属性(字体样式,大小,像素格式......) - 来自我捕获的图像的Hello。

我正在使用以下代码将字符串 - Hello转换为图像。

string str = "Hello";
  Bitmap bmp = new Bitmap(74, 16, PixelFormat.Format32bppArgb);
  using (Graphics gfx = Graphics.FromImage((Image)bmp))
  {
    Font font = new Font("Tahoma", 11, FontStyle.Regular, GraphicsUnit.Pixel);
    gfx.FillRectangle(Brushes.Transparent, new RectangleF(0, 0, bmp.Width, bmp.Height));
    gfx.FillRectangle(Brushes.Black, 0, 0, 74, 16);
    gfx.DrawString(str, font, new SolidBrush(Color.White), 1, 1);
    bmp.Save(@"C:\temp\" + str + ".bmp", ImageFormat.Bmp);
  }

两个图像(一个来自屏幕截图,另一个来自创建)不一样。

如何使用与屏幕截图中的文本完全匹配的文本创建图像?

以下是我用来从第三方应用程序屏幕捕获的代码....

        Rectangle rect = new Rectangle(194, 41, 74, 16);

        using (Bitmap bmpScreenShot = new Bitmap(rect.Width, rect.Height))
        {
          using (Graphics gfxScreenShot = Graphics.FromImage(bmpScreenShot))
          {
            gfxScreenShot.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmpScreenShot.Size, CopyPixelOperation.SourceCopy);
            gfxScreenShot.Dispose();


            MemoryStream imageStream = new MemoryStream();
            bmpScreenShot.Save(imageStream, ImageFormat.Bmp);
            bmpScreenShot.Save(@"c:\temp\pic1_0.bmp");
          }
     }

1 个答案:

答案 0 :(得分:0)

我假设您正在尝试实施OCR。我从未尝试过类似的东西,可以想象它变得非常复杂。您可能想要查看其他(开源)OCR,例如: