jbig2dec
Ralph Giles <[email protected]> Sun, 07 Jul 2002 13:30:59 -0700
| Newsgroups | gmane.comp.printing.ghostscript.jbig2dec.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/jbig2dec/jbig2dec
In directory usw-pr-cvs1:/tmp/cvs-serv15312
Modified Files:
jbig2_segment.c jbig2_text.c
Log Message:
Handle lossy and intermediate text regions as well as lossless immediate.
Store the bitmap for intermediate text regions into the segment's result field for later use by a refinement region.
Index: jbig2_segment.c
===================================================================
RCS file: /cvsroot/jbig2dec/jbig2dec/jbig2_segment.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- jbig2_segment.c 4 Jul 2002 16:33:44 -0000 1.11
+++ jbig2_segment.c 7 Jul 2002 20:30:56 -0000 1.12
@@ -138,13 +138,9 @@
{
case 0:
return jbig2_symbol_dictionary(ctx, segment, segment_data);
- case 4:
- return jbig2_error(ctx, JBIG2_SEVERITY_WARNING, segment->number,
- "unhandled segment type 'intermediate text region'");
- case 6:
- return jbig2_error(ctx, JBIG2_SEVERITY_WARNING, segment->number,
- "unhandled segment type 'immediate text region'");
- case 7:
+ case 4: /* intermediate text region */
+ case 6: /* immediate text region */
+ case 7: /* immediate lossless text region */
return jbig2_read_text_info(ctx, segment, segment_data);
case 16:
return jbig2_error(ctx, JBIG2_SEVERITY_WARNING, segment->number,
Index: jbig2_text.c
===================================================================
RCS file: /cvsroot/jbig2dec/jbig2dec/jbig2_text.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- jbig2_text.c 4 Jul 2002 12:08:03 -0000 1.9
+++ jbig2_text.c 7 Jul 2002 20:30:57 -0000 1.10
@@ -407,13 +407,19 @@
/* todo: check errors */
- jbig2_error(ctx, JBIG2_SEVERITY_DEBUG, segment->number,
- "composing %dx%d decoded text region onto page at (%d, %d)",
- region_info.width, region_info.height, region_info.x, region_info.y);
- jbig2_image_compose(ctx, page_image, image, region_info.x, region_info.y, JBIG2_COMPOSE_OR);
- if (image != page_image)
- jbig2_image_free(ctx, image);
-
+ if ((segment->flags & 63) == 4) {
+ /* we have an intermediate region here. save it for later */
+ segment->result = image;
+ } else {
+ /* otherwise composite onto the page */
+ jbig2_error(ctx, JBIG2_SEVERITY_DEBUG, segment->number,
+ "composing %dx%d decoded text region onto page at (%d, %d)",
+ region_info.width, region_info.height, region_info.x, region_info.y);
+ jbig2_image_compose(ctx, page_image, image, region_info.x, region_info.y, JBIG2_COMPOSE_OR);
+ if (image != page_image)
+ jbig2_image_free(ctx, image);
+ }
+
/* success */
return 0;