- #1
- 25
- 0
I'm getting this error
sun.awt.image.PNGImageDecoder$PNGException: crc corruption
at sun.awt.image.PNGImageDecoder.getChunk(Unknown Source)
at sun.awt.image.PNGImageDecoder.getData(Unknown Source)
at sun.awt.image.PNGFilterInputStream.read(Unknown Source)
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.awt.image.PNGImageDecoder.produceImage(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
This is the segment of code causing the error.
The file i output to shows that the image is corrupt, only a few lines of the image are visible and the rest is black. tk.prepareImage() also returns false. This segment sits in a method called once in its class's constructor method. I'm contacting the maps.google server for a map image with the proper parameters. The image returns fine with the same url in a browser . I've checked the google maps API documentation but nothing stands out. Any ideas?
Edit: Attempted requesting a different image format, but now i get "Premature end of JPEG file"
sun.awt.image.PNGImageDecoder$PNGException: crc corruption
at sun.awt.image.PNGImageDecoder.getChunk(Unknown Source)
at sun.awt.image.PNGImageDecoder.getData(Unknown Source)
at sun.awt.image.PNGFilterInputStream.read(Unknown Source)
at java.util.zip.InflaterInputStream.fill(Unknown Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.awt.image.PNGImageDecoder.produceImage(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
This is the segment of code causing the error.
Code:
URLConnection con = new URL("www.example.com").openConnection();
InputStream is = con.getInputStream();
byte bytes[] = new byte[con.getContentLength()];
BufferedInputStream bis = new BufferedInputStream(is);
bis.read(bytes);
bis.close();
con.getInputStream().close();
Toolkit tk = getToolkit();
image.setImage(tk.createImage(bytes));
File save = new File("picture");
FileOutputStream fos = new FileOutputStream(save);
fos.write(bytes);
fos.close();
if(tk.prepareImage(image.getImage(), 900, 900, null)){
System.out.println("True");
}else
System.out.println("False");
The file i output to shows that the image is corrupt, only a few lines of the image are visible and the rest is black. tk.prepareImage() also returns false. This segment sits in a method called once in its class's constructor method. I'm contacting the maps.google server for a map image with the proper parameters. The image returns fine with the same url in a browser . I've checked the google maps API documentation but nothing stands out. Any ideas?
Edit: Attempted requesting a different image format, but now i get "Premature end of JPEG file"
Last edited: