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) <<