List of usage examples for javax.imageio ImageIO createImageInputStream
public static ImageInputStream createImageInputStream(Object input) throws IOException
From source file:org.dita.dost.writer.ImageMetadataFilter.java
private Attributes readMetadata(final URI imgInput) { logger.info("Reading " + imgInput); final XMLUtils.AttributesBuilder a = new XMLUtils.AttributesBuilder(); try {/*from w ww. ja v a 2s .c o m*/ InputStream in = null; ImageReader r = null; ImageInputStream iis = null; try { in = getInputStream(imgInput); iis = ImageIO.createImageInputStream(in); final Iterator<ImageReader> i = ImageIO.getImageReaders(iis); if (!i.hasNext()) { logger.info("Image " + imgInput + " format not supported"); } else { r = i.next(); r.setInput(iis); final int imageIndex = r.getMinIndex(); a.add(DITA_OT_NS, ATTR_IMAGE_WIDTH, DITA_OT_PREFIX + ":" + ATTR_IMAGE_WIDTH, "CDATA", Integer.toString(r.getWidth(imageIndex))); a.add(DITA_OT_NS, ATTR_IMAGE_HEIGHT, DITA_OT_PREFIX + ":" + ATTR_IMAGE_HEIGHT, "CDATA", Integer.toString(r.getHeight(imageIndex))); final Element node = (Element) r.getImageMetadata(0).getAsTree("javax_imageio_1.0"); final NodeList hs = node.getElementsByTagName("HorizontalPixelSize"); if (hs != null && hs.getLength() == 1) { final float v = Float.parseFloat(((Element) hs.item(0)).getAttribute("value")); final int dpi = Math.round(MM_TO_INCH / v); a.add(DITA_OT_NS, ATTR_HORIZONTAL_DPI, DITA_OT_PREFIX + ":" + ATTR_HORIZONTAL_DPI, "CDATA", Integer.toString(dpi)); } final NodeList vs = node.getElementsByTagName("VerticalPixelSize"); if (vs != null && vs.getLength() == 1) { final float v = Float.parseFloat(((Element) vs.item(0)).getAttribute("value")); final int dpi = Math.round(MM_TO_INCH / v); a.add(DITA_OT_NS, ATTR_VERTICAL_DPI, DITA_OT_PREFIX + ":" + ATTR_VERTICAL_DPI, "CDATA", Integer.toString(dpi)); } } } finally { if (r != null) { r.dispose(); } if (iis != null) { iis.close(); } if (in != null) { in.close(); } } } catch (final Exception e) { logger.error("Failed to read image " + imgInput + " metadata: " + e.getMessage(), e); } return a.build(); }
From source file:br.com.pfood.mb.imp.ProdutoMB.java
public void handleFileUpload(FileUploadEvent event) throws IOException { if (listaImagensProduto.size() <= 5) { String dir = AppUtil.getDirFilesVendor() + usuarioLogado.getUsuario().getVendedor().getIdVendedor() + "/"; String fileName = event.getFile().getFileName(); InputStream is = event.getFile().getInputstream(); String extencao = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()); extencao = extencao.replace("jpeg", "jpg"); if (!extencao.equalsIgnoreCase("jpg")) { messageUtil.addMenssageWarn("Imagens devem ser do tipo JPG"); return; }//from w w w .j av a2s . c o m fileName = DigestUtils.md5Hex(fileName) + "." + extencao; try { FileOutputStream out = new FileOutputStream(dir + "or/" + fileName); int read = 0; byte[] bytes = new byte[1024]; while ((read = is.read(bytes)) != -1) { out.write(bytes, 0, read); } out.close(); out = null; } catch (Exception ex) { Logger.getLogger(ProdutoMB.class.getName()).log(Level.SEVERE, null, ex); } is.close(); is = null; BufferedImage imagem = ImageIO.read(ImageIO.createImageInputStream(new File(dir + "or/" + fileName))); if (imagem.getWidth() >= 128 || imagem.getHeight() >= 128) { ImagemUtil.redimenImagem(dir + "sm/" + fileName, dir + "or/" + fileName, 128, 128, extencao); } else { ImagemUtil.redimenImagem(dir + "sm/" + fileName, dir + "or/" + fileName, imagem.getWidth(null), imagem.getHeight(null), extencao); } if (imagem.getWidth() >= 640 || imagem.getHeight() >= 640) { ImagemUtil.redimenImagem(dir + "md/" + fileName, dir + "or/" + fileName, 640, 640, extencao); } else { ImagemUtil.redimenImagem(dir + "md/" + fileName, dir + "or/" + fileName, imagem.getWidth(null), imagem.getHeight(null), extencao); } Imagem i = new Imagem(); i.setCodigo(Imagecode.IMG_PRODUTO.getImgCode()); i.setDescricao(event.getFile().getFileName()); i.setHash(DigestUtils.md5Hex(event.getFile().getFileName())); i.setNomeArquivo(fileName); try { produtoBO.save(i); ImagemProduto imgProd = new ImagemProduto(); imgProd.setProduto(obj); imgProd.setImagem(i); imgProd.setSequencia(listaImagensProduto.size() + 1); produtoBO.save(imgProd); listaImagensProduto.add(imgProd); } catch (Exception ex) { ex.printStackTrace(); Logger.getLogger(ProdutoMB.class.getName()).log(Level.SEVERE, null, ex); } } else { messageUtil.addMenssageWarn("Maximo de 6 imagens por produto"); } }
From source file:org.medici.bia.controller.manuscriptviewer.IIPImageServerController.java
/** * This method retun a specific tiled image. * //from w ww . jav a2 s.c om * @param httpServletRequest * @param httpServletResponse */ private void generateFullImage(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { File imageFile = new File(ApplicationPropertyManager.getApplicationProperty("iipimage.image.path") + httpServletRequest.getParameter("FIF")); ImageInputStream imageInputStream = null; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); InputStream inputStream = null; try { if (imageFile.canRead()) { // Reading complete tiff information imageInputStream = ImageIO.createImageInputStream(imageFile); } else { logger.error("File " + imageFile.toString() + " is not present on filesystem. "); imageFile = new File(ApplicationPropertyManager.getApplicationProperty("iipimage.image.path") + ApplicationPropertyManager.getApplicationProperty("iipimage.image.notavailable")); if (imageFile.canRead()) { // Reading complete tiff information imageInputStream = ImageIO.createImageInputStream(imageFile); } else { logger.error("File " + imageFile.toString() + " is not present on filesystem. "); } } if (imageInputStream != null) { Iterator<ImageReader> readers = ImageIO.getImageReaders(imageInputStream); ImageReader reader = readers.next(); reader.setInput(imageInputStream, true, true); // Reading image position requested Integer imageFullIndex = NumberUtils.createInteger(httpServletRequest.getParameter("full")); // Positioning at correct page BufferedImage pageImage = reader.read(imageFullIndex); // preparing image for output ImageIO.write(pageImage, "jpeg", byteArrayOutputStream); inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); // writing image to output httpServletResponse.setContentType("image/jpeg"); IOUtils.copy(inputStream, httpServletResponse.getOutputStream()); } // Flushing request httpServletResponse.getOutputStream().flush(); } catch (IOException ioException) { logger.debug(ioException); } finally { try { if (inputStream != null) { inputStream.close(); } } catch (IOException ioException) { } try { if (byteArrayOutputStream != null) { byteArrayOutputStream.close(); } } catch (IOException ioException) { } try { if (imageInputStream != null) { imageInputStream.close(); } } catch (IOException ioException) { } } }
From source file:fr.mby.opa.picsimpl.service.BasicPictureFactory.java
protected void loadPicture(final Picture picture, final byte[] contents, final BufferedInputStream stream) throws IOException, UnsupportedPictureTypeException { // Load BufferedImage stream.reset();//w w w .j a v a2s . co m final BufferedImage originalImage = ImageIO.read(stream); if (originalImage == null) { throw new UnsupportedPictureTypeException(picture.getFilename()); } final int width = originalImage.getWidth(); final int height = originalImage.getHeight(); picture.setWidth(width); picture.setHeight(height); picture.setSize(contents.length); // Load thumbnail this.loadThumbnail(picture, originalImage); // Search for picture format String format = null; // with Java image readers stream.reset(); final ImageInputStream imageStream = ImageIO.createImageInputStream(stream); final Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageStream); if (imageReaders.hasNext()) { format = imageReaders.next().getFormatName(); } // In picture filename extension if (format == null) { format = FilenameUtils.getExtension(picture.getFilename()); } // Default format if (format == null) { format = BasicPictureFactory.DEFAULT_PICTURE_FORMAT; } picture.setFormat(format.toLowerCase()); // Build Contents final BinaryImage image = new BinaryImage(); image.setData(contents); image.setFilename(picture.getFilename()); image.setFormat(format); image.setWidth(width); image.setHeight(height); picture.setImage(image); }
From source file:org.psystems.dicomweb.Dcm2Jpg.java
public void convert(File src, File dest) throws IOException { Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM"); ImageReader reader = iter.next(); DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam(); param.setWindowCenter(center);//www. j av a 2 s . c o m param.setWindowWidth(width); param.setVoiLutFunction(vlutFct); param.setPresentationState(prState); param.setPValue2Gray(pval2gray); param.setAutoWindowing(autoWindowing); ImageInputStream iis = ImageIO.createImageInputStream(src); BufferedImage bi; OutputStream out = null; try { reader.setInput(iis, false); bi = reader.read(frame - 1, param); if (bi == null) { System.out.println("\nError: " + src + " - couldn't read!"); return; } out = new BufferedOutputStream(new FileOutputStream(dest)); JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out); enc.encode(bi); } finally { CloseUtils.safeClose(iis); CloseUtils.safeClose(out); } System.out.print('.'); }
From source file:org.psystems.dicom.daemon.Dcm2Jpg.java
public void convert(File src, File dest) throws IOException { Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM"); ImageReader reader = iter.next(); DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam(); param.setWindowCenter(center);//from w w w .java2 s. co m param.setWindowWidth(width); param.setVoiLutFunction(vlutFct); param.setPresentationState(prState); param.setPValue2Gray(pval2gray); param.setAutoWindowing(autoWindowing); ImageInputStream iis = ImageIO.createImageInputStream(src); BufferedImage bi; OutputStream out = null; try { reader.setInput(iis, false); if (reader.getNumImages(false) <= 0) { System.out.println("\nError: " + src + " - Don't haven any images!"); return; } // System.out.println("!!! frame="+frame+" p="+reader.getNumImages(false)); bi = reader.read(frame - 1, param); if (bi == null) { System.out.println("\nError: " + src + " - couldn't read!"); return; } out = new BufferedOutputStream(new FileOutputStream(dest)); JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out); enc.encode(bi); } finally { CloseUtils.safeClose(iis); CloseUtils.safeClose(out); } System.out.print('.'); }
From source file:com.abelsky.idea.geekandpoke.entries.Entry.java
private void readObject(@NotNull ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject();/*from w ww . j a v a 2 s .c o m*/ imageRef = new SoftReference<BufferedImage>(ImageIO.read(ImageIO.createImageInputStream(in))); }
From source file:org.carcv.core.model.file.FileCarImage.java
/** * Reads a rectangular region from an image in the inStream. * * @param inStream the InputStream from which to load the image fraction * @param rect specifies the rectangular region to load as the image * @throws IOException if an error during loading occurs *//*w w w . j ava 2 s. com*/ public void loadFragment(InputStream inStream, Rectangle rect) throws IOException { ImageInputStream imageStream = ImageIO.createImageInputStream(inStream); ImageReader reader = ImageIO.getImageReaders(imageStream).next(); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceRegion(rect); reader.setInput(imageStream, true, true); this.image = reader.read(0, param); reader.dispose(); imageStream.close(); }
From source file:com.shending.support.CompressPic.java
/** * ?//from w w w . ja v a 2s . c o m * * @param srcFile * @param dstFile * @param widthRange * @param heightRange */ public static void cutSquare(String srcFile, String dstFile, int widthRange, int heightRange, int width, int height) { int x = 0; int y = 0; try { ImageInputStream iis = ImageIO.createImageInputStream(new File(srcFile)); Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis); ImageReader reader = (ImageReader) iterator.next(); reader.setInput(iis, true); ImageReadParam param = reader.getDefaultReadParam(); int oldWidth = reader.getWidth(0); int oldHeight = reader.getHeight(0); int newWidth, newHeight; if (width <= oldWidth && height <= oldHeight) { newWidth = oldHeight * widthRange / heightRange; if (newWidth < oldWidth) { newHeight = oldHeight; x = (oldWidth - newWidth) / 2; } else { newWidth = oldWidth; newHeight = oldWidth * heightRange / widthRange; y = (oldHeight - newHeight) / 2; } Rectangle rectangle = new Rectangle(x, y, newWidth, newHeight); param.setSourceRegion(rectangle); BufferedImage bi = reader.read(0, param); BufferedImage tag = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(bi.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null); File file = new File(dstFile); ImageIO.write(tag, reader.getFormatName(), file); } else { BufferedImage bi = reader.read(0, param); BufferedImage tag = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = tag.createGraphics(); g2d.setColor(Color.WHITE); g2d.fillRect(0, 0, tag.getWidth(), tag.getHeight()); g2d.drawImage(bi.getScaledInstance(bi.getWidth(), bi.getHeight(), Image.SCALE_SMOOTH), (width - bi.getWidth()) / 2, (height - bi.getHeight()) / 2, null); g2d.dispose(); File file = new File(dstFile); ImageIO.write(tag, reader.getFormatName(), file); } } catch (Exception e) { e.printStackTrace(); } }
From source file:org.apache.xmlgraphics.image.loader.impl.AbstractImageSessionContext.java
/** {@inheritDoc} */ public Source newSource(String uri) { Source source = resolveURI(uri); if (source == null) { if (log.isDebugEnabled()) { log.debug("URI could not be resolved: " + uri); }/*w ww .j ava2 s .co m*/ return null; } if (!(source instanceof StreamSource) && !(source instanceof SAXSource)) { //Return any non-stream Sources and let the ImageLoaders deal with them return source; } ImageSource imageSource = null; String resolvedURI = source.getSystemId(); URL url; try { url = new URL(resolvedURI); } catch (MalformedURLException e) { url = null; } File f = /*FileUtils.*/toFile(url); if (f != null) { boolean directFileAccess = true; assert (source instanceof StreamSource) || (source instanceof SAXSource); InputStream in = ImageUtil.getInputStream(source); if (in == null) { try { in = new java.io.FileInputStream(f); } catch (FileNotFoundException fnfe) { log.error("Error while opening file." + " Could not load image from system identifier '" + source.getSystemId() + "' (" + fnfe.getMessage() + ")"); return null; } } if (in != null) { in = ImageUtil.decorateMarkSupported(in); try { if (ImageUtil.isGZIPCompressed(in)) { //GZIPped stream are not seekable, so buffer/cache like other URLs directFileAccess = false; } } catch (IOException ioe) { log.error("Error while checking the InputStream for GZIP compression." + " Could not load image from system identifier '" + source.getSystemId() + "' (" + ioe.getMessage() + ")"); return null; } } if (directFileAccess) { //Close as the file is reopened in a more optimal way IOUtils.closeQuietly(in); try { // We let the OS' file system cache do the caching for us // --> lower Java memory consumption, probably no speed loss final ImageInputStream newInputStream = ImageIO.createImageInputStream(f); if (newInputStream == null) { log.error("Unable to create ImageInputStream for local file " + f + " from system identifier '" + source.getSystemId() + "'"); return null; } else { imageSource = new ImageSource(newInputStream, resolvedURI, true); } } catch (IOException ioe) { log.error("Unable to create ImageInputStream for local file" + " from system identifier '" + source.getSystemId() + "' (" + ioe.getMessage() + ")"); } } } if (imageSource == null) { if (ImageUtil.hasReader(source) && !ImageUtil.hasInputStream(source)) { //We don't handle Reader instances here so return the Source unchanged return source; } // Got a valid source, obtain an InputStream from it InputStream in = ImageUtil.getInputStream(source); if (in == null && url != null) { try { in = url.openStream(); } catch (Exception ex) { log.error("Unable to obtain stream from system identifier '" + source.getSystemId() + "'"); } } if (in == null) { log.error("The Source that was returned from URI resolution didn't contain" + " an InputStream for URI: " + uri); return null; } try { //Buffer and uncompress if necessary in = ImageUtil.autoDecorateInputStream(in); imageSource = new ImageSource(createImageInputStream(in), source.getSystemId(), false); } catch (IOException ioe) { log.error("Unable to create ImageInputStream for InputStream" + " from system identifier '" + source.getSystemId() + "' (" + ioe.getMessage() + ")"); } } return imageSource; }