Skip to content

Commit 83ff145

Browse files
committed
After further testing I was wrong about the ColorSpaces and jpegReader interaction. Add back the colspace conditionals.
1 parent e35ff73 commit 83ff145

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/main/java/com/koadweb/javafpdf/FPDF.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -601,12 +601,19 @@ protected Map<String, Object> _parsejpg(String fileName, byte[] data) {
601601
img = jpegReader.readImage(data);
602602

603603
String colspace;
604-
// Output from jpegReader should always be RGB but still throw just in case it somehow isn't
605-
if (img.getColorModel().getColorSpace().getType() == ColorSpace.TYPE_RGB) {
606-
colspace = "DeviceRGB";
607-
} else {
608-
throw new IllegalArgumentException("Ungültiges Farbmodell " + img.getColorModel().getColorSpace().getType());
609-
}
604+
// In some cases ColorSpaces get converted by jpegReader but not always
605+
// 9 - TYPE_CMYK
606+
// 5 - TYPE_RGB
607+
// 6 - TYPE_GRAY
608+
if (img.getColorModel().getColorSpace().getType() == ColorSpace.TYPE_CMYK) {
609+
colspace = "DeviceCMYK";
610+
} else if (img.getColorModel().getColorSpace().getType() == ColorSpace.TYPE_RGB) {
611+
colspace = "DeviceRGB";
612+
} else if (img.getColorModel().getColorSpace().getType() == ColorSpace.TYPE_GRAY) {
613+
colspace = "DeviceGray";
614+
} else {
615+
throw new IllegalArgumentException("Ungültiges Farbmodell " + img.getColorModel().getColorSpace().getType());
616+
}
610617
//
611618
ByteArrayOutputStream boas = new ByteArrayOutputStream();
612619
ImageIO.write(img, "jpg", boas);

0 commit comments

Comments
 (0)