[
https://issues.apache.org/jira/browse/PDFBOX-2057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13989637#comment-13989637
]
Tilman Hausherr edited comment on PDFBOX-2057 at 5/5/14 4:01 PM:
-----------------------------------------------------------------
I'm currently having a weird problem: I can't extract the RGB part of an
TYPE_4BYTE_ABGR image properly. If the alpha value is 0, then the RGB image is
also set to 0 i.e. black. This does not happen with TYPE_INT_ARGB. The relevant
code is
{code}
rgbImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = rgbImage.createGraphics();
g.setComposite(AlphaComposite.Src);
g.drawImage(bi, 0, 0, null);
g.dispose();
{code}
bi is the image with an alpha component.
was (Author: tilman):
I'm currently having a weird problem: I can't extract the RGB part of an
TYPE_4BYTE_ABGR image properly. If the alpha value is 0, then the RGB image is
also set to 0 i.e. black. This does not happen with TYPE_INT_ARGB. The relevant
code is
{code}
rgbImage = new BufferedImage(width, height,
BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g = rgbImage.createGraphics();
g.setBackground(Color.white);
g.setComposite(AlphaComposite.Src);
g.drawImage(bi, 0, 0, null);
g.dispose();
{code}
bi is the image with an alpha component.
> Importing BufferedImage in PDFBox 1.8.5 broken
> ----------------------------------------------
>
> Key: PDFBOX-2057
> URL: https://issues.apache.org/jira/browse/PDFBOX-2057
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel
> Affects Versions: 1.8.5
> Environment: windows vista / jdk 1.7.0_45
> Reporter: Michaƫl Michaud
>
> Try to import a BufferedImage in a PDDocument with PDPixelMap
> BufferedImage with TYPE_4BYTE_ABGR works fine with PDFBox 1.8.4 (though, the
> pdf file contains instruction /ColorSpace /DeviceGray)
> BufferedImage with TYPE_4BYTE_ABGR produces an unreadable PDF with PDFBox
> 1.8.5 (though, the pdf file contains instruction /ColorSpace /DeviceRGB).
> Code used to demonstrate the problem is as follows (image has also been
> colored with some Graphics instructions to demonstrate that 1.8.4 is working)
> :
> {code}
> try {
> PDDocument doc = new PDDocument();
> PDPage page = new PDPage();
> doc.addPage(page);
> BufferedImage awtImage = new BufferedImage(100,100,
> BufferedImage.TYPE_4BYTE_ABGR);
> PDPixelMap ximage = new PDPixelMap(doc, awtImage);
> PDPageContentStream contentStream = new PDPageContentStream(doc,
> page);
> contentStream.drawXObject(ximage, 200, 200, 100, 100);
> contentStream.close();
> doc.save("C:\\Temp\\PDF\\test185_4babgr.pdf");
> } catch(COSVisitorException|IOException e) {
> e.printStackTrace();
> }
> {code}
> I also tried with a BufferedImage with TYPE_INT_ARGB but it throws an
> exception with PDFBox 1.8.4 and 1.8.5 :
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: Raster
> IntegerInterleavedRaster: width = 100 height = 100 #Bands = 1 xOff = 0 yOff =
> 0 dataOffset[0] 0 is incompatible with ColorModel ColorModel: #pixelBits = 8
> numComponents = 1 color space = java.awt.color.ICC_ColorSpace@1dc80063
> transparency = 1 has alpha = false isAlphaPre = false
> at java.awt.image.BufferedImage.<init>(BufferedImage.java:630)
> at
> org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap.createImageStream(PDPixelMap.java:107)
> {code}
> My main purpose was to use a BufferedImage with a CMYK ColorSpace, but
> PDPixelMap seems to accept 1 component and 3 component ColorSpace only.
--
This message was sent by Atlassian JIRA
(v6.2#6252)