亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? drawingarea.cpp

?? Ocr source code. provides an Ocr engine that works in C++ language.
?? CPP
字號:
/* drawingarea.cpp : code for the drawing area base class used in mainwindow *                   and in training; * Author: Maxie D. Schmidt (created 5/31/2006)                              */#include "drawingarea.h"drawing_area::drawing_area(int size_x, int size_y) : DrawingArea() {     set_size_request(size_x, size_y);}void drawing_area::refresh() {}void drawing_area::set_size(int size_x, int size_y) {     set_size_request(size_x, size_y);}void drawing_area::draw_image() {}void drawing_area::draw_parse_boundary() {     //if((scan_ignore_edges_top < 0) || (scan_ignore_edges_bottom < 0) ||     //   (scan_ignore_edges_left < 0) || (scan_ignore_edges_right < 0))     //     return;          Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> gc = Gdk::GC::create(win);     gc->set_line_attributes(2, Gdk::LINE_ON_OFF_DASH, Gdk::CAP_ROUND,                             Gdk::JOIN_ROUND);     Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();          Gdk::Color purple;     purple.set_red(51400);     purple.set_green(7967);     purple.set_blue(47802);     colormap->alloc_color(purple);     gc->set_foreground(purple);     win->draw_rectangle(gc, 0, scan_ignore_edges_left, scan_ignore_edges_top,                          pf->width - scan_ignore_edges_left -                         scan_ignore_edges_right, pf->height -                          scan_ignore_edges_top - scan_ignore_edges_bottom);}void drawing_area::draw_parse_list(parse_list *plist) {     if((plist == NULL) || ((plist->pl_begin) == NULL))          return;          // colors: (*) blue for line markers     //         (*) purple for char markers     Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> gc = Gdk::GC::create(win);     Glib::RefPtr<Gdk::GC> text_gc = get_style()->get_white_gc();     gc->set_line_attributes(2, Gdk::LINE_SOLID, Gdk::CAP_ROUND,                             Gdk::JOIN_ROUND);          Glib::RefPtr<Pango::Layout> layout = create_pango_layout("");     Pango::FontDescription fd;     fd.set_weight(Pango::WEIGHT_HEAVY);     layout->set_font_description(fd);     layout->set_width(15);     layout->set_alignment(Pango::ALIGN_CENTER);          Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();     Gdk::Color blue, purple;         blue.set_red(0);     blue.set_green(39321);     blue.set_blue(65535);     colormap->alloc_color(blue);          // prev value: (26214, 0, 39321)     purple.set_red(49601);     purple.set_green(41377);     purple.set_blue(60138);     colormap->alloc_color(purple);          parsed_line *cur_pl = plist->pl_begin;     while(cur_pl != NULL) {          gc->set_foreground(blue);          win->draw_rectangle(gc, 0, cur_pl->self_node.self_box.xy.x,                               cur_pl->self_node.self_box.xy.y - 1,                               cur_pl->self_node.self_box.horiz_len,                               cur_pl->self_node.self_box.vert_len + 2);                              parsed_char *cur_pc = cur_pl->pc_begin;          gc->set_foreground(purple);          while(cur_pc != NULL) {               if(cur_pc->self_node.is_space) {                                   cur_pc = cur_pc->next;                    continue;                              }                              win->draw_rectangle(gc, 0, cur_pc->self_node.self_box.xy.x,                                   cur_pc->self_node.self_box.xy.y,                                    cur_pc->self_node.self_box.horiz_len,                                   cur_pc->self_node.self_box.vert_len);                              // set letter at the corner of the box:               win->draw_rectangle(gc, true, cur_pc->self_node.self_box.xy.x,                                   cur_pc->self_node.self_box.xy.y, 15, 15);               layout->set_text(cur_pc->self_node.character);               win->draw_layout(text_gc, cur_pc->self_node.self_box.xy.x + 7,                                cur_pc->self_node.self_box.xy.y - 2, layout);                                             cur_pc = cur_pc->next;          }          cur_pl = cur_pl->next;     } // while}// gridded chars:grid_char_da::grid_char_da() {     set_size_request(0, 0);     letter_buf = NULL;     cur_char_box = NULL_BOX();     grid_fill = false;     grid_offset_x = grid_offset_y = 0;     gs_x = gs_y = gc_x = gc_y = -1;}grid_char_da::~grid_char_da() {     free(letter_buf);}void grid_char_da::refresh() {     if(letter_buf != NULL)          draw_letter_buf();     if(grid_fill && (letter_buf != NULL))          draw_grid_fill();     draw_grid_lines();}void grid_char_da::set_size(int size_x, int size_y) {     set_size_request(size_x, size_y);}void grid_char_da::draw_letter_buf() {     if(letter_buf == NULL)          return;     Glib::RefPtr<Gdk::GC> gc = get_style()->get_black_gc();     Glib::RefPtr<Gdk::GC> white_gc = get_style()->get_white_gc();     Glib::RefPtr<Gdk::Window> win = get_window();     win->draw_rectangle(white_gc, true, 0, 0, gs_x, gs_y);     win->draw_rgb_image(gc, grid_offset_x, grid_offset_y,                          cur_char_box.horiz_len,                          cur_char_box.vert_len, Gdk::RGB_DITHER_MAX,                          letter_buf, 3 * cur_char_box.horiz_len);}void grid_char_da::set_grid_draw_fill(bool tf) {     grid_fill = tf;}void grid_char_da::draw_grid_fill() {     Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> gc = get_style()->get_black_gc();     for(int i = 0; i < grid_fill_matrix.size(); i++) {          for(int j = 0; j < grid_fill_matrix[i].size(); j++) {               if(grid_fill_matrix[i][j])                    win->draw_rectangle(gc, true, j * gc_x, i * gc_y,                                         gc_x, gc_y);          }     }}void grid_char_da::draw_grid_lines() {     Glib::RefPtr<Gdk::Window> win = get_window();     Glib::RefPtr<Gdk::GC> gc = Gdk::GC::create(win);     Glib::RefPtr<Gdk::Colormap> colormap = get_default_colormap();     Gdk::Color pink;     pink.set_red(65535);     pink.set_green(39321);     pink.set_blue(52428);     colormap->alloc_color(pink);     gc->set_foreground(pink);     // draw ends:     win->draw_line(gc, gs_x - 1, 0, gs_x - 1, gs_y - 1);     win->draw_line(gc, 0, gs_y - 1, gs_x - 1, gs_y - 1);     // horiz and vert lines:     for(int i = 0; i < (gs_y / gc_y); i++)          win->draw_line(gc, 0, i * gc_y, gs_x - 1, i * gc_y);          for(int i = 0; i < (gs_x / gc_x); i++)          win->draw_line(gc, i * gc_x, 0, i * gc_x, gs_y - 1);}// this gets called when the update button for gs* or gc* is pushed:void grid_char_da::set_grid_params(int gsx, int gsy, int gcx, int gcy) {     gs_x = gsx;     gs_y = gsy;     gc_x = gcx;     gc_y = gcy;     if((gs_x > 0) && (gs_y > 0))          set_size(gs_x, gs_y);     if(letter_buf != NULL) { // have valid character                    // grid offsets (grid _should_ be >= buffer size_x/y):          grid_offset_x = (gs_x - cur_char_box.horiz_len) / 2;          grid_offset_y = (gs_y - cur_char_box.vert_len) / 2;                    // setup grid fill matrix:          grid_fill_matrix = grid_char(letter_buf, cur_char_box.vert_len,                                        cur_char_box.horiz_len, grid_offset_x,                                        grid_offset_y, gs_x, gs_y, gc_x, gc_y);     }}bool grid_char_da::on_expose_event(GdkEventExpose *event) {     refresh();     return true;}void grid_char_da::on_new_grid_cfg_letter(box_t char_box) {     cur_char_box = char_box;          if(!equals_NULL_BOX(cur_char_box)) {               // setup new letter buffer:          if(letter_buf != NULL)               free(letter_buf);          int byte_size = cur_char_box.horiz_len * cur_char_box.vert_len * 3;          letter_buf = (unsigned char *) malloc(byte_size);          if(letter_buf == NULL) {               log_error(ERROR_BAD_MALLOC, "in on_new_grid_cfg_letter", NULL);               return;          }                    int lb_offset = 0, pf_offset = 0;          for(int i = 0; i < cur_char_box.vert_len; i++) {               for(int j = 0; j < (cur_char_box.horiz_len * 3); j += 3) {                                        lb_offset = i * cur_char_box.horiz_len * 3 + j;                    pf_offset = (i + cur_char_box.xy.y) * (pf->width) * 3 +                                     (cur_char_box.xy.x * 3 + j);                                        *(letter_buf + lb_offset) = *(pf->buf + pf_offset);                    *(letter_buf + lb_offset + 1) = *(pf->buf + pf_offset + 1);                    *(letter_buf + lb_offset + 2) = *(pf->buf + pf_offset + 2);               }          }          // grid offsets (grid _should_ be >= buffer size_x/y):          grid_offset_x = (gs_x - cur_char_box.horiz_len) / 2;          grid_offset_y = (gs_y - cur_char_box.vert_len) / 2;                    // setup grid fill matrix:          grid_fill_matrix = grid_char(letter_buf, cur_char_box.vert_len,                                        cur_char_box.horiz_len, grid_offset_x,                                        grid_offset_y, gs_x, gs_y, gc_x, gc_y);          } // if(!equals_NULL_BOX...}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线视频| 91在线无精精品入口| 自拍视频在线观看一区二区| 国产福利一区二区三区视频在线 | 成年人午夜久久久| 国产精品美女久久久久av爽李琼 | 肉肉av福利一精品导航| 91精品国产91综合久久蜜臀| 看电视剧不卡顿的网站| 国产网站一区二区三区| 91视频在线观看| 亚洲chinese男男1069| 日韩免费电影一区| 国产成人精品三级麻豆| 亚洲三级免费电影| 欧美精品视频www在线观看| 精品影院一区二区久久久| 国产日韩v精品一区二区| 色婷婷av一区| 看片的网站亚洲| 国产一区二区三区四| 中文字幕久久午夜不卡| 色狠狠桃花综合| 国产综合色在线| 一区二区三区中文字幕精品精品 | 久久精品国产99久久6| 欧美激情一区二区三区不卡| 欧美图区在线视频| 国产原创一区二区三区| 亚洲乱码日产精品bd| 欧美xxxxxxxxx| 91免费观看视频在线| 蜜桃av一区二区三区电影| 亚洲欧洲日韩在线| 欧美xxx久久| 91黄色免费看| 高清在线观看日韩| 日韩av成人高清| 亚洲色图另类专区| 精品国产123| 欧美日韩国产成人在线免费| 成人午夜看片网址| 久久国产免费看| 亚洲图片一区二区| 亚洲婷婷在线视频| 久久久久久久性| 91精品国产综合久久久久久漫画| 成人app在线观看| 国产麻豆精品在线观看| 婷婷成人激情在线网| 最新国产成人在线观看| 久久久午夜精品理论片中文字幕| 欧美亚洲一区二区在线| 成人av免费网站| 国产高清亚洲一区| 久草精品在线观看| 日本三级亚洲精品| 亚洲国产中文字幕在线视频综合| 日本一区二区三区在线不卡 | 欧美激情一区不卡| 欧美成人福利视频| 欧美人伦禁忌dvd放荡欲情| 99精品久久久久久| 成人av中文字幕| 成人一区二区三区| 国产91综合网| 韩国成人精品a∨在线观看| 欧美aaaaa成人免费观看视频| 亚洲国产成人tv| 亚洲一级电影视频| 亚洲一区二区三区在线看| 亚洲激情成人在线| 亚洲综合在线免费观看| 亚洲免费观看高清在线观看| 国产精品国产馆在线真实露脸| 国产色综合久久| 国产精品网站一区| 国产精品国产三级国产aⅴ原创| 亚洲国产精品av| 国产精品久久三区| 日韩美女啊v在线免费观看| 亚洲私人黄色宅男| 玉足女爽爽91| 婷婷六月综合亚洲| 美女性感视频久久| 国产曰批免费观看久久久| 国产成人综合在线| 99久久久久免费精品国产| 一本高清dvd不卡在线观看| 在线观看国产91| 欧美夫妻性生活| 亚洲精品一线二线三线无人区| 久久亚洲私人国产精品va媚药| 国产日韩欧美综合在线| 国产精品高潮呻吟久久| 亚洲综合丝袜美腿| 日产国产高清一区二区三区 | 国产午夜亚洲精品不卡| 欧美国产丝袜视频| 亚洲另类色综合网站| 天天色综合成人网| 国产一区啦啦啦在线观看| 成人福利视频在线| 欧美日韩精品欧美日韩精品一 | 玉米视频成人免费看| 强制捆绑调教一区二区| 国产一区二区h| 91麻豆产精品久久久久久 | 日韩中文字幕一区二区三区| 狠狠色综合播放一区二区| 99精品黄色片免费大全| 一区二区三区免费看视频| 视频在线观看国产精品| 国产精品中文欧美| 在线观看免费成人| 久久亚洲精品国产精品紫薇| 一区二区三区在线观看动漫| 蜜桃精品在线观看| 色综合久久久久久久久久久| 日韩欧美在线不卡| 亚洲欧美一区二区不卡| 开心九九激情九九欧美日韩精美视频电影 | 国产电影精品久久禁18| 色综合天天综合狠狠| 久久久久久久网| 一区二区三区91| 国产精品一区二区在线播放| 欧美日韩亚洲综合一区| 国产色91在线| 青青草国产精品97视觉盛宴| 91在线观看下载| 久久一区二区三区四区| 亚洲电影激情视频网站| 成人av午夜电影| 欧美精品一区二区三区在线播放| 亚洲精品五月天| 国产999精品久久久久久| 欧美一区二区日韩一区二区| 亚洲精品免费播放| 风间由美中文字幕在线看视频国产欧美| 欧美精品亚洲一区二区在线播放| 亚洲视频免费观看| 国产精品一区二区三区网站| 欧美一级电影网站| 亚洲成人资源在线| 色综合久久综合网| 亚洲欧洲av一区二区三区久久| 国产一区二区三区高清播放| 欧美二区在线观看| 亚洲va欧美va人人爽| 色激情天天射综合网| 亚洲欧美在线观看| kk眼镜猥琐国模调教系列一区二区 | 91色九色蝌蚪| 国产精品另类一区| 国产福利一区二区三区在线视频| 日韩欧美久久久| 日韩成人午夜精品| 欧美乱妇20p| 婷婷成人激情在线网| 欧美日韩1234| 亚洲成人av一区| 欧美另类videos死尸| 亚洲国产一区二区三区 | 欧美日本精品一区二区三区| 亚洲男人的天堂在线观看| 成人av影院在线| 国产成人精品1024| 国产日本一区二区| 成人免费毛片嘿嘿连载视频| 国产日韩欧美一区二区三区综合| 国产精品亚洲专一区二区三区| 久久无码av三级| 高清久久久久久| 综合电影一区二区三区| 色悠悠亚洲一区二区| 一区二区三区高清不卡| 欧美日韩一二三区| 免费人成网站在线观看欧美高清| 欧美xxx久久| 岛国av在线一区| 亚洲久草在线视频| 欧美日韩夫妻久久| 久久国产剧场电影| 中文字幕欧美日韩一区| 99精品国产一区二区三区不卡| 亚洲最大色网站| 91精品国产欧美日韩| 精品一区二区三区在线播放视频 | 久久色.com| 国产精品88888| 国产嫩草影院久久久久| 国产+成+人+亚洲欧洲自线| 综合亚洲深深色噜噜狠狠网站| 色婷婷国产精品| 美女诱惑一区二区| 国产精品网友自拍| 欧美性色黄大片| 精品一区二区影视| 亚洲人午夜精品天堂一二香蕉|