【问题标题】:How to create image from text strings如何从文本字符串创建图像
【发布时间】:2011-09-08 14:57:13
【问题描述】:

我执行屏幕截图并获取包含文本的图像。让我们考虑图像中要读取的文本 - 'Hello'。

现在,我想从文本“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");
          }
     }

【问题讨论】:

  • 当你说图像不一样时,你到底是什么意思?你可以张贴图片吗?你用的是同一个字体吗?你怎么知道它是什么字体以及使用了什么字体样式?生成初始图像的应用程序是否具有任何高级文本格式化功能,例如高级字体字距设置?
  • 我基本上是在对第三方应用程序屏幕进行截屏。我不知道屏幕截图中使用了什么字体。
  • 如果您不知道使用的是什么字体(因此也不知道大小和样式),那么您如何期望图像是相同的?
  • 我已经粘贴了我用来从第三方应用程序截屏的代码的快照。
  • 有在线应用程序可以为您识别字体,给定图像。试试new.myfonts.com/WhatTheFont

标签: c# graphics ocr


【解决方案1】:

我假设您正在尝试实现 OCR。我从来没有尝试过这样的事情,并且可以想象它会变得相当复杂。您可能想查看其他(开源)OCR,例如:

【讨论】:

  • Tessnet2 看起来很酷!你知道它是否也进行字体系列和样式识别,还是仅用于将图像转换为文本?
  • Tessnet2 是一个 .NET 包装器的 Tesseract,只生成纯文本。
猜你喜欢
  • 2017-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 2016-11-10
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
相关资源
最近更新 更多