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;