Skip to content

Commit

Permalink
Merge pull request #664 from matthew16550/imageio-read-bytes
Browse files Browse the repository at this point in the history
Extract ImageIO.read(byte[]) method
  • Loading branch information
arnaudroques committed Sep 12, 2021
2 parents 061ce99 + 9859166 commit 5cb2022
Show file tree
Hide file tree
Showing 10 changed files with 14 additions and 32 deletions.
6 changes: 1 addition & 5 deletions src/net/sourceforge/plantuml/ClipboardLoop.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

Expand Down Expand Up @@ -88,12 +87,9 @@ private void runText(String text) throws IOException, InterruptedException {
Log.info("No image generated");
} else {
Log.info("Image ok " + desc.getDescription());
final byte[] data = baos.toByteArray();
baos.close();
final ByteArrayInputStream bais = new ByteArrayInputStream(data);
final BufferedImage image = ImageIO.read(bais);
final BufferedImage image = ImageIO.read(baos.toByteArray());
setClipboardImage(image);
bais.close();
Log.info("Image copied in clipboard");
}
}
Expand Down
6 changes: 1 addition & 5 deletions src/net/sourceforge/plantuml/EmbeddedDiagram.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@

import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
Expand Down Expand Up @@ -187,10 +186,7 @@ private BufferedImage getImageSlow() throws IOException, InterruptedException {
final ByteArrayOutputStream os = new ByteArrayOutputStream();
system.exportDiagram(os, 0, new FileFormatOption(FileFormat.PNG));
os.close();
final ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
final BufferedImage im = ImageIO.read(is);
is.close();
return im;
return ImageIO.read(os.toByteArray());
}

public HorizontalAlignment getHorizontalAlignment() {
Expand Down
3 changes: 1 addition & 2 deletions src/net/sourceforge/plantuml/UmlDiagram.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
Expand Down Expand Up @@ -270,7 +269,7 @@ private void exportDiagramInternalMjpeg(OutputStream os) throws IOException {
// exportDiagramTOxxBEREMOVED(baos, null, 0, new
// FileFormatOption(FileFormat.PNG, at));
baos.close();
final BufferedImage im = ImageIO.read(new ByteArrayInputStream(baos.toByteArray()));
final BufferedImage im = ImageIO.read(baos.toByteArray());
m.addImage(im);
}
m.finishAVI();
Expand Down
3 changes: 1 addition & 2 deletions src/net/sourceforge/plantuml/creole/atom/AtomImg.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
import java.awt.Color;
import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;

import net.sourceforge.plantuml.Dimension2DDouble;
Expand Down Expand Up @@ -157,7 +156,7 @@ public static Atom create(String src, ImgValign valign, int vspace, double scale

private static Atom buildRasterFromData(String source, final FontConfiguration fc, final byte[] data, double scale,
Url url) throws IOException {
final BufferedImage read = ImageIO.read(new ByteArrayInputStream(data));
final BufferedImage read = ImageIO.read(data);
if (read == null) {
return AtomTextUtils.createLegacy("(Cannot decode: " + source + ")", fc);
}
Expand Down
7 changes: 1 addition & 6 deletions src/net/sourceforge/plantuml/eggs/PSystemRIP.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@
*/
package net.sourceforge.plantuml.eggs;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

import net.sourceforge.plantuml.PlainStringsDiagram;
import net.sourceforge.plantuml.core.DiagramDescription;
Expand All @@ -60,10 +58,7 @@ public PSystemRIP(UmlSource source) throws IOException {
strings.add(" <b>Requiescat In Pace");
strings.add(" ");

final InputStream is = new ByteArrayInputStream(imm);
image = ImageIO.read(is);
is.close();

image = ImageIO.read(imm);
imagePosition = GraphicPosition.BOTTOM;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
Expand Down Expand Up @@ -119,7 +118,7 @@ public MutableImage getImage(Color foregroundColor, Color backgroundColor) {
}
try {
final byte[] bytes = plainPngBuilder(getRollback()).writeByteArray();
return new PixelImage(ImageIO.read(new ByteArrayInputStream(bytes)), AffineTransformType.TYPE_BILINEAR);
return new PixelImage(ImageIO.read(bytes), AffineTransformType.TYPE_BILINEAR);
} catch (IOException e1) {
return null;
}
Expand Down
5 changes: 5 additions & 0 deletions src/net/sourceforge/plantuml/security/ImageIO.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
Expand Down Expand Up @@ -76,6 +77,10 @@ public static BufferedImage read(SFile file) throws IOException {
public static BufferedImage read(InputStream is) throws IOException {
return javax.imageio.ImageIO.read(is);
}

public static BufferedImage read(byte[] bytes) throws IOException {
return javax.imageio.ImageIO.read(new ByteArrayInputStream(bytes));
}

public static ImageInputStream createImageInputStream(java.io.File file) throws IOException {
return javax.imageio.ImageIO.createImageInputStream(file);
Expand Down
3 changes: 1 addition & 2 deletions src/net/sourceforge/plantuml/swing/ImageWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
Expand Down Expand Up @@ -336,7 +335,7 @@ private ScrollablePicture buildScrollablePicture() {
final TextBlockBackcolored error = GraphicStrings.createForError(Arrays.asList(msg), false);
try {
final byte[] bytes = plainPngBuilder(error).writeByteArray();
image = ImageIO.read(new ByteArrayInputStream(bytes));
image = ImageIO.read(bytes);
} catch (IOException e) {
e.printStackTrace();
}
Expand Down
3 changes: 1 addition & 2 deletions src/net/sourceforge/plantuml/ugraphic/FontChecker.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
import java.awt.font.TextLayout;
import java.awt.geom.PathIterator;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
Expand Down Expand Up @@ -184,7 +183,7 @@ public void drawU(UGraphic ug) {
}
};
final byte[] bytes = plainPngBuilder(drawable).writeByteArray();
return ImageIO.read(new ByteArrayInputStream(bytes));
return ImageIO.read(bytes);
}

// public BufferedImage getBufferedImageOld(char c) throws IOException {
Expand Down
7 changes: 1 addition & 6 deletions src/net/sourceforge/plantuml/ugraphic/ImageBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
import java.awt.geom.AffineTransform;
import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
Expand Down Expand Up @@ -401,11 +400,7 @@ private Image getAviImage(AffineTransformation affineTransform) throws IOExcepti
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
writeImageInternal(new FileFormatOption(FileFormat.PNG), baos, Animation.singleton(affineTransform));
baos.close();

final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
final Image im = ImageIO.read(bais);
bais.close();
return im;
return ImageIO.read(baos.toByteArray());
}

private UGraphic2 createUGraphic(FileFormatOption option, final Dimension2D dim, Animation animationArg, double dx,
Expand Down

0 comments on commit 5cb2022

Please sign in to comment.