[
https://issues.apache.org/jira/browse/PDFBOX-2057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13989159#comment-13989159
]
Michaël Michaud commented on PDFBOX-2057:
-----------------------------------------
For TYPE_4BYTE_ARGB, the problem is solved for me in 1.8.6-SNAPSHOT.
TYPE_INT_ARGB still throws an error : I would say that in this case,
alphaRaster derived from bi has the same Integer DataBuffer type as bi, which
is not compatible with the BYTE DataBuffer of the new alphaImage colorModel).
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@6ce664ac 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:132)
> 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)