hi, thanks a lot .i will try that now.but what is "img" and "sm" in (GraphicsUtil.wrap(img), sm) cheers GVS
-----Original Message----- From: Thomas DeWeese [mailto:[EMAIL PROTECTED] Sent: Thursday, October 23, 2003 1:30 PM To: Batik Users Subject: Re: outofmemory error in batik transcoder GVS Srinivas wrote: > hi, > i am sorry if i conveyed that tiffencoding is not solving my problem.infact > as mentioned in my earlier mail,i didnt quite get through how to encode the > tiff image on the fly.i was not quite sure what to pass the argument for > encoder.encode(). > please guide me. > here is the code.i am doing this in a servlet filter > ======================================================================= > response.setContentType("image/tiff"); > String svgJpeg="svgTansformedImage"; > String headerString="attachment"+" filename=\""+ svgJpeg +".tiff\""; > response.setHeader("Content-Disposition", "inline filename=\""+ > svgJpeg +".tiff\""); > TiledImageTranscoder t = new TiledImageTranscoder(); You need to modify the transcode method of the TiledImageTranscoder. The Current code looks like: RenderedImage rimg = new FormatRed(GraphicsUtil.wrap(img), sm); TIFFImageEncoder enc = new TIFFImageEncoder (output.getOutputStream(), null); enc.encode(rimg); The new code will look something like: RenderedImage rimg = new FormatRed(GraphicsUtil.wrap(img), sm); TIFFEncodeParam param = new TIFFEncodeParam(); param.setCompression(TIFFEncodeParam.COMPRESSION_JPEG_TTN2); // Perhaps set other param's (tiled, JPEG Params). TIFFImageEncoder enc = new TIFFImageEncoder (output.getOutputStream(), param); enc.encode(rimg); > t.addTranscodingHint(KEY_WIDTH, new Float(10240)); > TranscoderInput input = > new TranscoderInput( new StringReader(outputSVGString) );//the > outputSVGString is the svg string > > // which i want to convert as an image > try { > TranscoderOutput output = > new TranscoderOutput(response.getOutputStream()); > t.transcode(input, output); > TIFFEncodeParam param = new TIFFEncodeParam(); > param.setCompression(TIFFEncodeParam.COMPRESSION_JPEG_TTN2); > ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF", > response.getOutputStream(),param); > encoder.encode(?????);//what should i pass the input as should > //i read it from the disk after i save > the image > response.getOutputStream().flush(); > response.getOutputStream().close(); > } > catch (Throwable e) > { > e.printStackTrace(); > } > > ======================================================================= > -----Original Message----- > From: Thomas DeWeese [mailto:[EMAIL PROTECTED] > Sent: Thursday, October 23, 2003 12:34 PM > To: Batik Users > Subject: Re: outofmemory error in batik transcoder > > > GVS Srinivas wrote: > > > >>thanks for the suggestion of tiffencoding.i still didnt get through doing >>that. > > > I am _very_ surprised that this didn't solve the problem if the default > TiledImageTranscoder did work. > > >>one more suggestion.. >>there are some JPEGTranscoding hints like Key_Quality, > > KEY_PIXEL_TO_MM.does > >>the memory blowing up decrease by adjusting these values,please suggest. >>thanks a lot > > > There are lots of options you can set in the TIFFEncodeParam. One of > them is the JPEG encoding params to use (this allows you to specify > the quality setting), this won't significantly affect the amount of memory > used to encode the image, but will obviously effect the size of the file > on disk. One option you might try using is to turn on 'tiled' output > in the TIFF Encoder. > > Once again though I must say that I am very surprised that turning on > JPEG Encoding caused it to fail. Can you post the code you are using to > encode the image? > > > >>GVS >> >>-----Original Message----- >>From: GVS Srinivas >>Sent: Wednesday, October 22, 2003 3:55 PM >>To: 'Batik Users' >>Subject: RE: outofmemory error in batik transcoder >> >> >>i saw this snippet of code >> >>================================================ >> OutputStream out = new FileOutputStream(fileName); >> TIFFEncodeParam param = new TIFFEncodeParam(); >> param.setCompression(TIFFEncodeParam.COMPRESSION_JPEG_TTN2); >> ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF", out, >>param); >> encoder.encode(firstImage); >> out.close(); >>================================================= >>but in the above code i see that encode mathod of the encoder takes the >>image. >>i am invoking the TiledImageTranscoder to raster a tiff image.can i, on > > the > >>fly give the tiff image as the input to the image encoder so that it > > encodes > >>in the JPEG format.i dont want to create a tiff image first on the disk > > and > >>then access the image to encode it to the jpeg.please suggest me >>thanks a lot again. >>GVS >> >> >>-----Original Message----- >>From: Thomas DeWeese [mailto:[EMAIL PROTECTED] >>Sent: Wednesday, October 22, 2003 12:56 PM >>To: Batik Users >>Subject: Re: outofmemory error in batik transcoder >> >> >>GVS Srinivas wrote: >> >> >> >>>thanks for the input thomas, >>>i think saving image of size 400 mb of an image cant be afforded by us. >> >> >> Well, you might try using one of the supported forms of compressed > > Tiff. > >>This includes JPEG Compression. The second argument to the > > TIFFImageEncoder > >>is a TIFFEncodeParam object. You can construct one and call: >> >> param.setCompression(TIFFEncodeParam.COMPRESSION_JPEG_TTN2); >> >> To turn on JPEG compression of the image data (the file is still a Tiff >>file). >>The encoder also supports, COMPRESSION_PACKBITS (a run length encoding), > > and > >>COMPRESSION_DEFLATE ("gzip" compression). To be honest I've never really >>tried >>either of these but the TIFF Encoder we use (from JAI) should support > > them. > >> Also these are getting pretty far "off the beaten path" for Tiff files > > so > >>what ever software you are using down stream may or may not be able to > > read > >>them. >> >> >> >>>i tried the other option of increasing the memory of java while starting >> >>my >> >> >>>tomcat(Xmx512m ),i observed an improvement but still it seems to choke the >>>memory.Is there any plan of batik enhancing the JPEGTranscoder?. >> >> >> I don't have any plans. The biggest problem is that the com.sun JPEG >>encoder >>which we use takes the entire image at one time (no tiled interface). BTW >>for a 400MB image you will need to give it at least a Gig of memory as >>I know it needs to copy that image at least once for output (800MB). >> >> >> >>>thanks a lot for the support. >>>regds >>>GVS >>> >>>-----Original Message----- >>>From: Thomas DeWeese [mailto:[EMAIL PROTECTED] >>>Sent: Tuesday, October 21, 2003 7:31 PM >>>To: Batik Users >>>Subject: Re: outofmemory error in batik transcoder >>> >>> >>>GVS Srinivas wrote: >>> >>> >>> >>> >>>>hi , >>>>thanks for the info. >>>>i tried using TiledImageTranscoder >>>>1. it was saying that the constrcutor is protected. >>> >>> >>> The file has it's own main which was intended to construct the >>>Transcoder, but I don't think there is much of a problem making it >>>public for use in a larger application. >>> >>> >>> >>> >>>>2.i made the constructor public and tried instantiating i tried in the >>>>following way >>>>==================================== >>>> FileOutputStream fos = new FileOutputStream("d:\\gvs.tiff"); >>>> TiledImageTranscoder tit = new TiledImageTranscoder(); >>>> tit.addTranscodingHint(KEY_WIDTH, new Float(10240)); >>>> tit.transcode(new TranscoderInput("file:" + "d:\\test.svg"), >>>> new TranscoderOutput(fos)); >>>>==================================== >>>>it was creating a file as large as 400MB.i am not sure where iam > > commiting > >>>>some mistake.please help me out. >>> >>> >>> I don't think there is a mistake, the Tiff file is uncompressed, >>>so assuming a mostly square document: 4*10,000*10,000 = 400,000,000 bytes >> >>= >> >> >>>400MB. >>>(That is 4 bytes per pixel * 10,000 pixels across * 10,000 pixels down). >>> >>> >>> >>> >>>>thanks >>>>GVS >>>> >>>>-----Original Message----- >>>>From: Thomas DeWeese [mailto:[EMAIL PROTECTED] >>>>Sent: Tuesday, October 21, 2003 3:52 PM >>>>To: Batik Users >>>>Subject: Re: outofmemory error in batik transcoder >>>> >>>> >>>>Felicia Ionascu wrote: >>>> >>>> >>>> >>>> >>>> >>>>>Hi, >>>>>I had the same problem several months ago, you can use the >>>>>TiledImageTranscoder instead of your JPEG transcoder, of course you need > > >>>>>to change "TIF" to "JPEG" in the code. This transcoder doesn't use >>>>>BufferedImages but RenderedImages, so it decreases dramatically the >>>>>memory consumption. >>>>>The source is in the "contrib" area of the CVS, thanks to Thomas. >>>> >>>> >>>> Actually, you can't just replace TIFF with JPEG in the code because >>>>there is no JPEG encoder capable of taking a rendered image and >>> >>>transcoding >>> >>> >>> >>>>it to a JPEG file (Actually I think javax.imageio may have one but we >>>>are currently based on JDK 1.3 so in that context we don't have it). >>>> >>>> But it is true that if you can switch to using TIFF then the tiled >>>>transcoder >>>>is _much_ better for very large images. >>>> >>>> >>>> >>>> >>>> >>>>>Felicia >>>>> >>>>> >>>>> >>>>>GVS Srinivas wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>hi all , >>>>>>i am trying to transform a large svg into an jpg image using batik > > jpeg > >>>>>>transcoder and i am encoutering with outofmemoryerror. >>>>>>when the transcode method is called from the jpegtranscoder. >>>>>> >>>> >>>> > 1.jpegtrascoder---------->>>>>2.imagetranscoder.transcode()----------->>>>3. > >> > Staticrenderer.repaint()----------->>>>>>4.Staticrenderer.updateWorkingBuffe > >>>>>>rs()------>>>>5. Raster.createWritableRaster().after this i am geting >> >>the >> >> >>>>>>outofmemoryerror. >>>>>>when i debug the code actual wrror is coming in the in databufferInt >>>>>>class. >>>>>> >>>>>>would you please send me the code for correcting this problem in the >>>>>>batik >>>>>>thanks a lot >>>>>>GVS >>>>>> >>>>>>--------------------------------------------------------------------- >>>>>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>>For additional commands, e-mail: [EMAIL PROTECTED] >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>>--------------------------------------------------------------------- >>>>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>For additional commands, e-mail: [EMAIL PROTECTED] >>>>> >>>>> >>>> >>>> >>>> >>>> >>>> >>>>--------------------------------------------------------------------- >>>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>>_____________________________________________________________________ >>>>This e-mail has been scanned for viruses by MCI's Internet Managed >>> >>>Scanning >>> >>> >>> >>>>Services - powered by MessageLabs. For further information visit >>>>http://www.mci.com >>>> >>>>--------------------------------------------------------------------- >>>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>> >>> >>> >>> >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>>_____________________________________________________________________ >>>This e-mail has been scanned for viruses by MCI's Internet Managed >> >>Scanning >> >> >>>Services - powered by MessageLabs. For further information visit >>>http://www.mci.com >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: [EMAIL PROTECTED] >>>For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >> >> >> >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> >>_____________________________________________________________________ >>This e-mail has been scanned for viruses by MCI's Internet Managed > > Scanning > >>Services - powered by MessageLabs. For further information visit >>http://www.mci.com >> >>--------------------------------------------------------------------- >>To unsubscribe, e-mail: [EMAIL PROTECTED] >>For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > _____________________________________________________________________ > This e-mail has been scanned for viruses by MCI's Internet Managed Scanning > Services - powered by MessageLabs. For further information visit > http://www.mci.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _____________________________________________________________________ This e-mail has been scanned for viruses by MCI's Internet Managed Scanning Services - powered by MessageLabs. For further information visit http://www.mci.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]