The GIF decoding didn't work for some strange formats. This was caused by the MPPSM rounding wrong in an integer division (it rounds down but should round up really). I added a -1, so that it rounds up instead and now it works.

2006-07-11  Roman Kennke  <[EMAIL PROTECTED]>

        * java/awt/image/MultiPixelPackedSampleModel.java
        (MultiPixelPackedSampleModel): Substract -1 so that the integer
        division gets rounded up.

/Roman
Index: java/awt/image/MultiPixelPackedSampleModel.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/image/MultiPixelPackedSampleModel.java,v
retrieving revision 1.4
diff -u -1 -2 -r1.4 MultiPixelPackedSampleModel.java
--- java/awt/image/MultiPixelPackedSampleModel.java	2 Jul 2005 20:32:36 -0000	1.4
+++ java/awt/image/MultiPixelPackedSampleModel.java	11 Jul 2006 21:31:01 -0000
@@ -92,25 +92,25 @@
 				      + " larger than dataType");
     switch (numberOfBits)
       {
       case 1: case 2: case 4: case 8: case 16: case 32: break;
       default:
 	throw new RasterFormatException("MultiPixelPackedSampleModel pixel"
 					+ " size not 2^n bits");
       }
     numElems = elemBits / numberOfBits;
 
     // Compute scan line large enough for w pixels.
     if (scanlineStride == 0)
-      scanlineStride = ((dataBitOffset + w * numberOfBits) / elemBits);
+      scanlineStride = (((dataBitOffset + w * numberOfBits) - 1) / elemBits);
     this.scanlineStride = scanlineStride;
 
     
     sampleSize = new int[1];
     sampleSize[0] = numberOfBits;
 
     bitMasks = new int[numElems];
     bitOffsets = new int[numElems];
     for (int i=0; i < numElems; i++)
       {
 	bitOffsets[numElems - i- 1] = numberOfBits * i;
 	bitMasks[numElems - i - 1] = ((1 << numberOfBits) - 1) << 

Reply via email to