[ 
https://issues.apache.org/jira/browse/SANSELAN-14?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12653200#action_12653200
 ] 

Kevin Theisen commented on SANSELAN-14:
---------------------------------------

Hi Charles,

I checked all my IO objects. The byte[] from Sanselan is 1666 in length. 
ByteArrayOutputStream.toByteArray().length also returns 1666. That output 
stream is used to initialize a ByteArrayInputStream that is sent to Sanselan. I 
cannot find a case where the data is being truncated.

That being said, your reasoning is probably correct, I just can't think of 
where the data is not being fully read. I found out through further testing, 
that this process also fails for TIFFs when the image is large, as the 
following error shows. So I think you are correct. But I also checked the array 
lengths for my IO objects involved with the TIFF, and they are all the same 
size as the byte[] from Sanselan...

java.io.IOException: Bad Code: -1 codes: 258 code_size: 9, table: 4096
        at 
org.apache.sanselan.common.mylzw.MyLZWDecompressor.stringFromCode(MyLZWDecompressor.java:81)
        at 
org.apache.sanselan.common.mylzw.MyLZWDecompressor.decompress(MyLZWDecompressor.java:172)
        at 
org.apache.sanselan.formats.tiff.datareaders.DataReader.decompress(DataReader.java:120)
        at 
org.apache.sanselan.formats.tiff.datareaders.DataReaderStrips.readImageData(DataReaderStrips.java:96)
        at 
org.apache.sanselan.formats.tiff.TiffImageParser.getBufferedImage(TiffImageParser.java:456)
        at 
org.apache.sanselan.formats.tiff.TiffDirectory.getTiffImage(TiffDirectory.java:163)
        at 
org.apache.sanselan.formats.tiff.TiffImageParser.getBufferedImage(TiffImageParser.java:392)
        at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1157)
        at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1056)
        at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1029)

This is how I use Sanselan's function that takes the correctly created 
ByteArrayInputStream:

final BufferedImage image = Sanselan.getBufferedImage((InputStream) 
contents.getTransferData(dataFlavor));

Is it possible that this could be an issue with Sanselan?

-Kevin



> Two issues with BMPs.
> ---------------------
>
>                 Key: SANSELAN-14
>                 URL: https://issues.apache.org/jira/browse/SANSELAN-14
>             Project: Sanselan
>          Issue Type: Bug
>    Affects Versions: 0.94-incubator
>         Environment: Windows, Mac, Linux, Sanselan 0.94
>            Reporter: Kevin Theisen
>            Priority: Minor
>         Attachments: SanselanTest.bmp
>
>
> Hi all,
> Two things. The first is minor. There is a System.out.println() that should 
> be commented out in the BMP code. I see a lot of lines like this:
> "bits_per_sample: 8"
> The second is an error. When I create a BMP with Sanselan, everything works, 
> and I can load the output into OpenOffice without problem from the System 
> Clipboard. However, when trying to recreate the BufferedImage with Sanselan 
> from the same exact output Sanselan created, I get the following error:
> org.apache.sanselan.ImageReadException: BMP: Strange BitmapDataOffset: 266 
> (expected: 1078, PaletteLength: 1024, header_size: 54)
>       at 
> org.apache.sanselan.formats.bmp.BmpImageParser.readImageContents(BmpImageParser.java:317)
>       at 
> org.apache.sanselan.formats.bmp.BmpImageParser.getBufferedImage(BmpImageParser.java:553)
>       at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1157)
>       at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1056)
>       at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1029)
> Let me know if you have any ideas about that.
> Thanks,
> Kevin

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to