Bitmap subbitmap(const Image& image, const IntRect& rect){
  return image.GetBackground().Visit(
    [&](const Bitmap& bmp){
      return subbitmap(bmp, rect);
    },
    [&](const ColorSpan& span){
      return Bitmap(rect.GetSize(), span.color);
    });
}
Example #2
0
static void process_letter(Job *job, int x, int y, int w, int h)
{
    unsigned char **window = subbitmap(job->pixels, x, y, h);
    RecognizedLetter *rl = recognize_letter(job->core, window, w, h, 0);
    if (job->colored_output)
        color_print_recognized_letter(rl);
    else if (rl->text)
        fputs(rl->text, stdout);
    else
        putchar('_');

    free_recognized_letter(rl);
    FREE(window);
}
Example #3
0
static void process_word(Job *job, int x, int y, int w, int h)
{
    unsigned char **window = subbitmap(job->pixels, x, y, h);
    RecognizedWord *rw = recognize_word(job->core, window, w, h, 0);
    if (job->colored_output)
    {
        int i;
        for (i = 0; i < rw->count; i++)
            color_print_recognized_letter(rw->letters[i]);
    }
    else
        fputs(rw->text, stdout);
    
    free_recognized_word(rw);
    FREE(window);
}
 void DoBmp(BitmapCommand& cmd, CommandContext& ctx) override{
   Bitmap bmp(subbitmap(ctx.GetRawBitmap(), m_rect));
   cmd.Do(bmp);
   FaintDC& dc(ctx.GetDC());
   dc.Blit(bmp, floated(m_rect.TopLeft()), default_bitmap_settings());
 }