Skip to content

Commit eeb30c3

Browse files
olivierDelierreOlivier Delierre
andauthored
Set original type to images within ImageLoader for OpenRTF support (#1285)
Co-authored-by: Olivier Delierre <o.delierre@icloud.com>
1 parent 7e28632 commit eeb30c3

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

openpdf/src/main/java/com/lowagie/text/ImageLoader.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747

4848
import java.awt.image.BufferedImage;
4949
import java.io.ByteArrayInputStream;
50+
import java.io.IOException;
5051
import java.io.InputStream;
5152
import java.net.URL;
5253
import javax.imageio.ImageIO;
@@ -73,7 +74,7 @@ public class ImageLoader {
7374
public static Image getPngImage(URL url) {
7475
try (InputStream is = url.openStream()) {
7576
BufferedImage bufferedImage = ImageIO.read(is);
76-
return Image.getInstance(bufferedImage, null, false);
77+
return getImage(bufferedImage, Image.ORIGINAL_PNG);
7778
} catch (Exception e) {
7879
throw new ExceptionConverter(e);
7980
}
@@ -90,7 +91,7 @@ public static Image getWMFImage(URL url) {
9091
public static Image getGifImage(URL url) {
9192
try (InputStream is = url.openStream()) {
9293
BufferedImage bufferedImage = ImageIO.read(is);
93-
return Image.getInstance(bufferedImage, null, false);
94+
return getImage(bufferedImage, Image.ORIGINAL_GIF);
9495
} catch (Exception e) {
9596
throw new ExceptionConverter(e);
9697
}
@@ -99,7 +100,7 @@ public static Image getGifImage(URL url) {
99100
public static Image getTiffImage(URL url) {
100101
try (InputStream is = url.openStream()) {
101102
BufferedImage bufferedImage = ImageIO.read(is);
102-
return Image.getInstance(bufferedImage, null, false);
103+
return getImage(bufferedImage, Image.ORIGINAL_TIFF);
103104
} catch (Exception e) {
104105
throw new ExceptionConverter(e);
105106
}
@@ -109,7 +110,7 @@ public static Image getTiffImage(URL url) {
109110
public static Image getBmpImage(URL url) {
110111
try (InputStream is = url.openStream()) {
111112
BufferedImage bufferedImage = ImageIO.read(is);
112-
return Image.getInstance(bufferedImage, null, false);
113+
return getImage(bufferedImage, Image.ORIGINAL_BMP);
113114
} catch (Exception e) {
114115
throw new ExceptionConverter(e);
115116
}
@@ -142,7 +143,7 @@ public static Image getJpeg2000Image(URL url) {
142143
public static Image getGifImage(byte[] imageData) {
143144
try (InputStream is = new ByteArrayInputStream(imageData)) {
144145
BufferedImage bufferedImage = ImageIO.read(is);
145-
return Image.getInstance(bufferedImage, null, false);
146+
return getImage(bufferedImage, Image.ORIGINAL_GIF);
146147
} catch (Exception e) {
147148
throw new ExceptionConverter(e);
148149
}
@@ -151,8 +152,7 @@ public static Image getGifImage(byte[] imageData) {
151152
public static Image getPngImage(byte[] imageData) {
152153
try (InputStream is = new ByteArrayInputStream(imageData)) {
153154
BufferedImage bufferedImage = ImageIO.read(is);
154-
return Image.getInstance(bufferedImage, null, false);
155-
155+
return getImage(bufferedImage, Image.ORIGINAL_PNG);
156156
} catch (Exception e) {
157157
throw new ExceptionConverter(e);
158158
}
@@ -169,8 +169,7 @@ public static Image getWMFImage(byte[] imageData) {
169169
public static Image getBmpImage(byte[] imageData) {
170170
try (InputStream is = new ByteArrayInputStream(imageData)) {
171171
BufferedImage bufferedImage = ImageIO.read(is);
172-
return Image.getInstance(bufferedImage, null, false);
173-
172+
return getImage(bufferedImage, Image.ORIGINAL_BMP);
174173
} catch (Exception e) {
175174
throw new ExceptionConverter(e);
176175
}
@@ -185,8 +184,7 @@ public static Image getBmpImage(byte[] imageData) {
185184
public static Image getTiffImage(byte[] imageData) {
186185
try (InputStream is = new ByteArrayInputStream(imageData)) {
187186
BufferedImage bufferedImage = ImageIO.read(is);
188-
return Image.getInstance(bufferedImage, null, false);
189-
187+
return getImage(bufferedImage, Image.ORIGINAL_TIFF);
190188
} catch (Exception e) {
191189
throw new ExceptionConverter(e);
192190
}
@@ -216,4 +214,9 @@ public static Image getJpeg2000Image(byte[] imageData) {
216214
}
217215
}
218216

217+
private static Image getImage(BufferedImage bufferedImage, int originalType) throws IOException {
218+
Image image = Image.getInstance(bufferedImage, null, false);
219+
image.setOriginalType(originalType);
220+
return image;
221+
}
219222
}

0 commit comments

Comments
 (0)