I'm going crazy with it. as you can see, I never manipulated images as low level. and do not have much sense of how things work. I am searching for a days for end my solution. and I'm already getting stressed. i going on test methods .. i try to do.. and before try by another choice.. -.-
can you give me some more assistance on how I can turn this array of bytes back into an image? could have just one class of api that made it not? : P Pdfimages buf = new pdfimages (myRawImageByteArray); buf.getAsBufferedImage (); : P if you say you can not help me all right, but I can indicate a content in which I can rely on to get this done? thanks. Leonard Rosenthol-3 wrote: > > The image is decompressed and then "injected" into the PDF. Same with > EVERY TYPE of image EXCEPT JPEG. > > -----Original Message----- > From: Fernando Gomes [mailto:fernandogomes...@hotmail.com] > Sent: Tuesday, February 23, 2010 3:21 PM > To: itext-questions@lists.sourceforge.net > Subject: Re: [iText-questions] Using Images extracted from a pdf > > > ty .. > > I have a question. > when I insert an image that is not jpeg > what exactly happens with this? > > say that it is in PNG it is decompressed to be "injected" into PDF? > > or she keeps your PNG format, but the bytes are encoded with the > FlateEncode > .. > > a matter of finding the filter and decode do I get it. > > and if the image is uncompressed before being inserted to PDF, how do I > know > which type of encode the image? > > > Leonard Rosenthol-3 wrote: >> >> Bits per pixel is the BitsPerComponent value in the image object >> >> Pixels per line (POR LINHA) is _NOT_ Width * bits. It's Width * >> NumComponents, where NumComponents is based on the colorspace in question >> (eg. RGB == 3, CMYK == 4). >> >> -----Original Message----- >> From: Fernando Gomes [mailto:fernandogomes...@hotmail.com] >> Sent: Tuesday, February 23, 2010 2:00 PM >> To: itext-questions@lists.sourceforge.net >> Subject: Re: [iText-questions] Using Images extracted from a pdf >> >> >> >> >>> public static BufferedImage createBufferedImageFromRawBytes(byte[] >>> bytes,int width, int height, int bits) throws BadElementException, >>> MalformedURLException, IOException { >>> com.lowagie.text.Image img = >>> com.lowagie.text.Image.getInstance(bytes); >>> >>> DataBuffer db = new DataBufferByte (img.getRawData(), >>> img.getRawData().length); >>> >>> WritableRaster raster = Raster.createPackedRaster(db, >>> //DATA BUFFER >>> >>> width, //LARGURA >>> >>> height, //ALTURA >>> >>> width*bits, >>> //LARGURA * BITS POR PIXEL = PIXEL POR >>> LINHA >>> ->scanlineStride >>> // >>> bits, //BITS POR >>> PIXEL ->pixelStride >>> >>> new int [] {bits}, >>> >>> >>> >>> null); >>> >>> ColorSpace cs = ColorSpace.getInstance >>> (img.getColorspace()); >>> ColorModel cm = new ComponentColorModel(cs, false, >>> false, >>> Transparency.OPAQUE, db.getDataType()); >>> BufferedImage bi = new BufferedImage (cm, raster, >>> false, null); >>> return null; >>> } >>> >>> >> >> this code is up to where I could get, but there are variables that I know >> of >> to generate bufferedImage, please someone help me see if I'm on track. >> If I write something wrong. >> >> >> >> Fernando Gomes wrote: >>> >>> can anyone help-me one more time.. >>> i dont know what i do .. >>> >>> I need to get the image bytes, now decoded... >>> >>> String colorSpace = pdfStrem.get(PdfName.COLORSPACE).toString(); >>>> String >>>> filter = pdfStrem.get(PdfName.FILTER).toString(); >>>> int >>>> bits = >>>> Integer.valueOf(pdfStrem.get(PdfName.BITSPERCOMPONENT).toString()); >>>> int >>>> width = >>>> Integer.valueOf(pdfStrem.get(PdfName.WIDTH).toString()); >>>> int >>>> height = >>>> Integer.valueOf(pdfStrem.get(PdfName.HEIGHT).toString()); >>>> >>>> PdfDictionary param = >>>> (PdfDictionary)pdfStrem.get(PdfName.DECODEPARMS); >>>> int >>>> colors = >>>> Integer.valueOf(param.get(PdfName.COLORS).toString()); >>>> int >>>> predictor = >>>> Integer.valueOf(param.get(PdfName.PREDICTOR).toString()); >>>> int >>>> colums = >>>> Integer.valueOf(param.get(PdfName.COLUMNS).toString()); >>>> >>>> if(filter.equals("/FlateDecode")) >>>> { >>>> >>>> byte[] bytesDecod = PdfReader.FlateDecode(bytes); >>> >>> these are all the information that I can withdraw PDF >>> >>> I have to do to create my image in general .. >>> I'm trying to do, or learn, but this hard, all my attempts have failed. >>> ty >>> >>> >>> Fernando Gomes wrote: >>>> >>>> Sirs, really sorry for duplicating, can delete other topics ? >>>> so sorry ..:blush: >>>> >>>> very thkx for help.. >>>> and so good fast help .. >>>> i will estudy more .. >>>> >>>> >>>> Leonard Rosenthol-3 wrote: >>>>> >>>>> You are assuming that PDF maintains the PNG nature of the image - that >>>>> is NOT the case. PDF only supports two kinds of images JPEG (which is >>>>> why this works) and "raw bitmaps" (aka an array of bits). So in your >>>>> case, with the PNG, it is transcoded into the latter case and so if >>>>> you >>>>> want it back you will need to reverse the process on your end. >>>>> >>>> >>>> >>>> for this response in other same email :blush: >>>> quote of "1T3XT info" below .. >>>> >>>> really thanks. I must have seen the realance the chapter that you >>>> mentioned, I will read again and very carefully. My English is very >>>> weak, >>>> and it is very difficult to read. >>>> >>>> you are very funny, I laughed a lot. I know I deserved the scolding. >>>> Really thanks for your help. I will test and then come back to post the >>>> result. >>>> Thank you! >>>> >>>> >>>> 1T3XT info wrote: >>>>> >>>>> Fernando Henrique Gomes wrote: >>>>>> the problem is when I insert an image in PNG format and then try to >>>>>> get >>>>>> the same... >>>>> >>>>> OK, we're talking about a PNG. >>>>> If you've read chapter 10 of the 2nd edition of "iText in Action", >>>>> you know that PNGs are transformed into zipped pixels. >>>>> If you didn't know, you should read the book! >>>>> >>>>>> on here i try to take that image... >>>>>> >>>>>> [code] >>>>>> int XrefIndex =((PRIndirectReference)obj).getNumber(); >>>>>> PdfObject pdfObj = pdf.getPdfObject(XrefIndex); >>>>>> PdfStream pdfStrem = (PdfStream)pdfObj; >>>>>> byte[] bytes = >>>>>> PdfReader.getStreamBytesRaw((PRStream)pdfStrem); >>>>>> if ((bytes != null)) { >>>>>> String fileName = "Image_P"+pageNumber+"_"; >>>>>> File file = new File(fileName); >>>>>> FileOutputStream fw = new FileOutputStream(file); >>>>>> fw.write(bytes); >>>>>> fw.flush(); >>>>>> fw.close(); >>>>>> BufferedImage img2 = ImageIO.read(file); >>>>>> com.lowagie.text.Image img = >>>>>> com.lowagie.text.Image.getInstance(file.toURL()); >>>>>> } >>>>>> [/code] >>>>>> >>>>>> img2 returned a null !!!! >>>>> >>>>> Of course, why do you think that would work??? >>>>> >>>>>> in line of img .. has a Excpetion >>>>>> "Image_P1_ is not a recognized imageformat" >>>>> >>>>> Of course, you're sending iText a bunch of pixels, >>>>> but: what are the dimensions of the image, >>>>> how many bits are there per component? >>>>> >>>>>> when i try to do : >>>>>> [code] >>>>>> Image image = Toolkit.getDefaultToolkit().createImage(bytes); >>>>>> [code] >>>>>> >>>>>> and before create an image from this image getting the width and >>>>>> height >>>>>> from my PdfStream (create a buffered and draw the image) >>>>>> when i serialize on a file and visualize this.. this image in a >>>>>> fucking >>>>>> black picture .. all black -.- >>>>> >>>>> It's because you don't have a fucking clue about what you're doing :P >>>>> Hehe, I was waiting for an occasion to use the F* word on the list. >>>>> Thanks! >>>>> >>>>>> if i use JPEG encode for my images.. all the 3 solution i have .. its >>>>>> ok.. have effects.. >>>>> >>>>> Well, that's because iText stores JPEGs literally as a JPEG without >>>>> changing any of the bytes. If you look inside, you'll see that the >>>>> filter is DCTDecode (Discrete Cosine Transform). >>>>> >>>>>> i can vizualize my images how to i create then .. perfect.. >>>>>> but if i change de JPEG ... for any other encode.. thats not have >>>>>> efect >>>>>> .. >>>>> >>>>> No idea what you're saying here, but you also need to study images. >>>>> >>>>>> can any help-me plz ? >>>>> >>>>> This example doesn't involve iText, but explains what you're missing. >>>>> >>>>> Let's create an image byte per byte: >>>>> >>>>> byte b[] = new byte[256 * 3]; >>>>> for (int i = 0; i < 256; i++) { >>>>> b[i * 3] = (byte) (255 - i); >>>>> b[i * 3 + 1] = (byte) (255 - i); >>>>> b[i * 3 + 2] = (byte) i; >>>>> } >>>>> >>>>> This is how a PNG, GIF, and some other image types are stored >>>>> in a PDF, but in zipped format (FlateDecode). These bytes don't >>>>> make any sense if you don't know the bpc, color space and dimensions. >>>>> >>>>> If you want to create an image from this bytes, you could do this: >>>>> >>>>> DataBuffer db = new DataBufferByte(b, b.length); >>>>> WritableRaster raster = Raster.createInterleavedRaster( >>>>> db, 16, 16, 48, 3, new int[]{0,1,2}, null); >>>>> ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); >>>>> ColorModel cm = new ComponentColorModel( >>>>> cs, false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); >>>>> BufferedImage bi = new BufferedImage(cm, raster, false, null); >>>>> ImageIO.write(bi, "bmp", new File("hello.bmp")); >>>>> >>>>> In this example, I treat the image as 16 x 16 pixels, using RGB, >>>>> and converting it to a Bitmap. It's up to you to adapt the example >>>>> if your image is a GrayScale or CMYK image, or if you want another >>>>> format. >>>>> >>>>> (And please don't post the same question multiple times!!!) >>>>> -- >>>>> This answer is provided by 1T3XT BVBA >>>>> http://www.1t3xt.com/ - http://www.1t3xt.info >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Download Intel® Parallel Studio Eval >>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>> proactively, and fine-tune applications for parallel performance. >>>>> See why Intel Parallel Studio got high marks during beta. >>>>> http://p.sf.net/sfu/intel-sw-dev >>>>> _______________________________________________ >>>>> iText-questions mailing list >>>>> iText-questions@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/itext-questions >>>>> >>>>> Buy the iText book: http://www.1t3xt.com/docs/book.php >>>>> Check the site with examples before you ask questions: >>>>> http://www.1t3xt.info/examples/ >>>>> You can also search the keywords list: >>>>> http://1t3xt.info/tutorials/keywords/ >>>>> >>>>> >>>> >>>> >>>> >>>> >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/Using-Images-extracted-from-a-pdf-tp27693711p27708516.html >> Sent from the iText - General mailing list archive at Nabble.com. >> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> iText-questions mailing list >> iText-questions@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/itext-questions >> >> Buy the iText book: http://www.1t3xt.com/docs/book.php >> Check the site with examples before you ask questions: >> http://www.1t3xt.info/examples/ >> You can also search the keywords list: >> http://1t3xt.info/tutorials/keywords/ >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> iText-questions mailing list >> iText-questions@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/itext-questions >> >> Buy the iText book: http://www.1t3xt.com/docs/book.php >> Check the site with examples before you ask questions: >> http://www.1t3xt.info/examples/ >> You can also search the keywords list: >> http://1t3xt.info/tutorials/keywords/ >> >> > > -- > View this message in context: > http://old.nabble.com/Using-Images-extracted-from-a-pdf-tp27693711p27709815.html > Sent from the iText - General mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > iText-questions mailing list > iText-questions@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/itext-questions > > Buy the iText book: http://www.1t3xt.com/docs/book.php > Check the site with examples before you ask questions: > http://www.1t3xt.info/examples/ > You can also search the keywords list: > http://1t3xt.info/tutorials/keywords/ > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > iText-questions mailing list > iText-questions@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/itext-questions > > Buy the iText book: http://www.1t3xt.com/docs/book.php > Check the site with examples before you ask questions: > http://www.1t3xt.info/examples/ > You can also search the keywords list: > http://1t3xt.info/tutorials/keywords/ > > -- View this message in context: http://old.nabble.com/Using-Images-extracted-from-a-pdf-tp27693711p27710159.html Sent from the iText - General mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ iText-questions mailing list iText-questions@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/itext-questions Buy the iText book: http://www.1t3xt.com/docs/book.php Check the site with examples before you ask questions: http://www.1t3xt.info/examples/ You can also search the keywords list: http://1t3xt.info/tutorials/keywords/