public static Image loadFromStream(@NotNull final InputStream inputStream, final int scale) { if (scale <= 0) throw new IllegalArgumentException("Scale must 1 or more"); try { BufferExposingByteArrayOutputStream outputStream = new BufferExposingByteArrayOutputStream(); try { byte[] buffer = new byte[1024]; while (true) { final int n = inputStream.read(buffer); if (n < 0) break; outputStream.write(buffer, 0, n); } } finally { inputStream.close(); } Image image = Toolkit.getDefaultToolkit() .createImage(outputStream.getInternalBuffer(), 0, outputStream.size()); waitForImage(image); if (UIUtil.isRetina() && scale > 1) { image = RetinaImage.createFrom(image, scale, ourComponent); } return image; } catch (Exception ex) { LOG.error(ex); } return null; }
private static Image load(@NotNull final InputStream inputStream, final int scale) { if (scale <= 0) throw new IllegalArgumentException("Scale must be 1 or greater"); try { BufferExposingByteArrayOutputStream outputStream = new BufferExposingByteArrayOutputStream(); try { byte[] buffer = new byte[1024]; while (true) { final int n = inputStream.read(buffer); if (n < 0) break; outputStream.write(buffer, 0, n); } } finally { inputStream.close(); } Image image = Toolkit.getDefaultToolkit() .createImage(outputStream.getInternalBuffer(), 0, outputStream.size()); waitForImage(image); return image; } catch (Exception ex) { LOG.error(ex); } return null; }