chiark
/
gitweb
/
~yarrgweb
/
ypp-sc-tools.db-test.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct bugs in new AA table cell structure parsing
[ypp-sc-tools.db-test.git]
/
pctb
/
structure.c
diff --git
a/pctb/structure.c
b/pctb/structure.c
index da80cb9fda86297b74e57f8e6a37ec7a887244bd..9d92877c6e5b6a6fc23c42ce4332ed27d0c8112b 100644
(file)
--- a/
pctb/structure.c
+++ b/
pctb/structure.c
@@
-462,28
+462,30
@@
static void find_table_entry(Rect commod, int colno, Rect *cell) {
const RgbImage *ri= cim->rgb;
Rgb background= ri_rgb(ri, cell->br.x, cell->br.y);
const RgbImage *ri= cim->rgb;
Rgb background= ri_rgb(ri, cell->br.x, cell->br.y);
- long bg_count=0,
white_count=0, blac
k_count=0;
+ long bg_count=0,
light_count=0, dar
k_count=0;
Point p;
FOR_P_RECT(p,*cell) {
Rgb here= ri_rgb(ri, p.x, p.y);
if (here == background) bg_count++;
Point p;
FOR_P_RECT(p,*cell) {
Rgb here= ri_rgb(ri, p.x, p.y);
if (here == background) bg_count++;
- else if (here
== 0) blac
k_count++;
- else if (here
== 0xffffffU) white
_count++;
+ else if (here
< background) dar
k_count++;
+ else if (here
> background) light
_count++;
}
long total_count= RECT_W(*cell) * RECT_H(*cell);
}
long total_count= RECT_W(*cell) * RECT_H(*cell);
- MUST( bg_count > 8*total_count / 10,
- MR(*cell);MIL(bg_count);MIL(white_count);MIL(black_count) );
+ MUST( bg_count > total_count / 2,
+ MR(*cell);MIL(total_count);MIL(bg_count);
+ MIL(light_count);MIL(dark_count) );
if (bg_count == total_count)
return;
if (bg_count == total_count)
return;
- MUST( !!black_count != !!white_count,
- MR(*cell);MIL(bg_count);MIL(white_count);MIL(black_count) );
+ MUST( !!dark_count != !!light_count,
+ MR(*cell);MIL(total_count);MIL(bg_count);
+ MIL(light_count);MIL(dark_count) );
- debugf("TABLEENTRY col=%d %d,%d..%d,%d bg=%ld
white=%ld blac
k=%ld\n",
+ debugf("TABLEENTRY col=%d %d,%d..%d,%d bg=%ld
light=%ld dar
k=%ld\n",
colno, cell->tl.x,cell->tl.y, cell->br.x,cell->br.y,
colno, cell->tl.x,cell->tl.y, cell->br.x,cell->br.y,
- bg_count,
white_count, blac
k_count);
+ bg_count,
light_count, dar
k_count);
- Rgb foreground=
white
_count ? 0xffffffU : 0;
+ Rgb foreground=
light
_count ? 0xffffffU : 0;
int monochrome= 1;
FOR_P_RECT(p,*cell) {
int monochrome= 1;
FOR_P_RECT(p,*cell) {