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); }); }
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); }
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()); }