Как создать изображение из текстовых строк - PullRequest
1 голос
/ 08 сентября 2011

Я делаю снимок экрана и получаю изображение с текстом в нем.Давайте рассмотрим текст на изображении для чтения - «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 голосов
/ 08 сентября 2011

Я предполагаю, что вы пытаетесь реализовать OCR. Я никогда не пробовал ничего подобного, и могу представить, что это довольно сложно. Возможно, вы захотите проверить другие OCR (с открытым исходным кодом), например:

...