You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Art Welch <ar...@EASTPOINT.COM> on 2000/08/16 02:17:07 UTC

GifJpegImage.getImage() question

I am completely not understanding something, and hope that someone can shed
some light on this.

I am getting the following exception when trying to produce an image:

rendering areas to PCL
org.apache.fop.image.FopImageException: Error while loading image
file:mib1.bmp : class java.lang.ClassCastException -
java.io.BufferedInputStream
	at org.apache.fop.image.GifJpegImage.getImage(GifJpegImage.java:156)
	at
org.apache.fop.image.GifJpegImage.getBitmaps(GifJpegImage.java:225)
	at PCLRenderer.printBMP(PCLRenderer.java:411)
	at PCLRenderer.renderImageArea(PCLRenderer.java:511)
	at org.apache.fop.image.ImageArea.render(ImageArea.java:101)
	at PCLRenderer.renderAreaContainer(PCLRenderer.java:318)
	at PCLRenderer.renderPage(PCLRenderer.java:1288)
	at PCLRenderer.render(PCLRenderer.java:148)
	at PCLDriver.render(PCLDriver.java:89)
	at XSLTDocumentHandler.endReport(XSLTDocumentHandler.java:486)
	at XSLTDocumentHandler.endDocument(XSLTDocumentHandler.java:357)
	at
chrysalisBaseDocumentHandler.endDocument(chrysalisBaseDocumentHandler.java:8
7)
	at
chrysalisDocumentHandler.endDocument(chrysalisDocumentHandler.java:77)
	at
chrysalisCacheFileDocumentHandler.endDocument(chrysalisCacheFileDocumentHand
ler.java:32)
	at
org.apache.xerces.parsers.SAXParser.endDocument(SAXParser.java:1212)
	at
org.apache.xerces.validators.common.XMLValidator.callEndDocument(XMLValidato
r.java:629)
	at
org.apache.xerces.framework.XMLDocumentScanner$EndOfInputDispatcher.dispatch
(XMLDocumentScanner.java:1545)
	at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.
java:380)
	at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:861)
	at
chrysalisProducerFromFile.process(chrysalisProducerFromFile.java:90)
	at chrysalisServlet.doProcess(chrysalisServlet.java:162)
	at chrysalisServlet.main(chrysalisServlet.java:287)

I have just started looking at this, but I suspect that the line causing the
exception is the following line in GifJpegImage.getImage():

	ImageProducer ip = (ImageProducer) this.m_href.getContent();

I assume that what is happening is that this.m_href.getContent() is
returning a BufferedInputStream, which seems to me entirely reasonable for
content from a URL to a file. What I do not understand is how could it be
expected that this would be castable to an ImageProducer. I suspect that I
am missing something somewhere.

Thank You,
Art

Re: GifJpegImage.getImage() question

Posted by Eric SCHAEFFER <es...@posterconseil.com>.
Youps...

You're maybe right. I wrote the new image package using the old one, and the
image content was obtained like this.

I don't know if an URL should return an ImageProducer when the content is an
image. I only know that it works when I try it with file and http URLs.

According to the Java API doc, the URL.getContent method is a shorthand for
URL.openConnection().getContent(). And URLConnection.getContent() use a
content handler factory to know what class to return. If you don't change
the default content handler factory, for images, I think it should return an
ImageProducer instance....

If you have an idea on how to improve the code, you're wellcome
:-)

Eric.

----- Original Message -----
From: "Art Welch" <ar...@EASTPOINT.COM>
To: <fo...@xml.apache.org>
Sent: Wednesday, August 16, 2000 2:17 AM
Subject: GifJpegImage.getImage() question


> I am completely not understanding something, and hope that someone can
shed
> some light on this.
>
> I am getting the following exception when trying to produce an image:
>
> rendering areas to PCL
> org.apache.fop.image.FopImageException: Error while loading image
> file:mib1.bmp : class java.lang.ClassCastException -
> java.io.BufferedInputStream
> at org.apache.fop.image.GifJpegImage.getImage(GifJpegImage.java:156)
> at
> org.apache.fop.image.GifJpegImage.getBitmaps(GifJpegImage.java:225)
> at PCLRenderer.printBMP(PCLRenderer.java:411)
> at PCLRenderer.renderImageArea(PCLRenderer.java:511)
> at org.apache.fop.image.ImageArea.render(ImageArea.java:101)
> at PCLRenderer.renderAreaContainer(PCLRenderer.java:318)
> at PCLRenderer.renderPage(PCLRenderer.java:1288)
> at PCLRenderer.render(PCLRenderer.java:148)
> at PCLDriver.render(PCLDriver.java:89)
> at XSLTDocumentHandler.endReport(XSLTDocumentHandler.java:486)
> at XSLTDocumentHandler.endDocument(XSLTDocumentHandler.java:357)
> at
>
chrysalisBaseDocumentHandler.endDocument(chrysalisBaseDocumentHandler.java:8
> 7)
> at
> chrysalisDocumentHandler.endDocument(chrysalisDocumentHandler.java:77)
> at
>
chrysalisCacheFileDocumentHandler.endDocument(chrysalisCacheFileDocumentHand
> ler.java:32)
> at
> org.apache.xerces.parsers.SAXParser.endDocument(SAXParser.java:1212)
> at
>
org.apache.xerces.validators.common.XMLValidator.callEndDocument(XMLValidato
> r.java:629)
> at
>
org.apache.xerces.framework.XMLDocumentScanner$EndOfInputDispatcher.dispatch
> (XMLDocumentScanner.java:1545)
> at
>
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.
> java:380)
> at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:861)
> at
> chrysalisProducerFromFile.process(chrysalisProducerFromFile.java:90)
> at chrysalisServlet.doProcess(chrysalisServlet.java:162)
> at chrysalisServlet.main(chrysalisServlet.java:287)
>
> I have just started looking at this, but I suspect that the line causing
the
> exception is the following line in GifJpegImage.getImage():
>
> ImageProducer ip = (ImageProducer) this.m_href.getContent();
>
> I assume that what is happening is that this.m_href.getContent() is
> returning a BufferedInputStream, which seems to me entirely reasonable for
> content from a URL to a file. What I do not understand is how could it be
> expected that this would be castable to an ImageProducer. I suspect that I
> am missing something somewhere.
>
> Thank You,
> Art
>