List of usage examples for java.awt.image BufferedImage flush
public void flush()
From source file:org.niord.proxy.web.WmsProxyServlet.java
/** * Main GET method//from w ww . j a v a 2 s.c o m * @param request servlet request * @param response servlet response */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // Cache for a day WebUtils.cache(response, CACHE_TIMEOUT); // Check that the WMS parameters have been specified if (StringUtils.isBlank(wmsServerUrl)) { response.sendRedirect(BLANK_IMAGE); return; } boolean layerParamDefined = wmsServerUrl.toLowerCase().contains("layers="); @SuppressWarnings("unchecked") Map<String, String[]> paramMap = request.getParameterMap(); String params = paramMap.entrySet().stream() .filter(p -> !layerParamDefined || !"layers".equalsIgnoreCase(p.getKey())) .map(p -> String.format("%s=%s", p.getKey(), p.getValue()[0])).collect(Collectors.joining("&")); String url = wmsServerUrl + "&" + params; log.log(Level.FINEST, "Loading image " + url); try { BufferedImage image = ImageIO.read(new URL(url)); if (image != null) { OutputStream out = response.getOutputStream(); ImageIO.write(image, "png", out); image.flush(); out.close(); return; } } catch (Exception e) { log.log(Level.FINEST, "Failed loading WMS image for URL " + url + ": " + e); } // Fall back to return a blank image try { response.sendRedirect(BLANK_IMAGE); } catch (IOException e) { log.log(Level.FINEST, "Failed returning blank image for URL " + url + ": " + e); } }
From source file:org.niord.web.wms.WmsProxyServlet.java
/** * Main GET method/*w ww.j av a 2s . co m*/ * @param request servlet request * @param response servlet response */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // Enforce "wmsProtected" flag. If set, only authenticated users can load the tiles. // On the client level, load the tiles using Ajax (see map-directive.js) to ensure // that the proper headers are passed along if (wmsProtected && request.getUserPrincipal() == null) { response.setStatus(HttpServletResponse.SC_FORBIDDEN); response.getWriter() .println("<html><body><p>WMS service only available to authenticated users</p></body></html>"); return; } // Cache for a day WebUtils.cache(response, CACHE_TIMEOUT); // Check that the WMS provider has been defined using system properties if (StringUtils.isBlank(wmsServiceName) || StringUtils.isBlank(wmsProvider) || StringUtils.isBlank(wmsLogin) || StringUtils.isBlank(wmsPassword)) { response.sendRedirect(BLANK_IMAGE); return; } @SuppressWarnings("unchecked") Map<String, String[]> paramMap = request.getParameterMap(); String params = paramMap.entrySet().stream() .filter(p -> StringUtils.isBlank(wmsLayers) || !"layers".equalsIgnoreCase(p.getKey())) .map(p -> String.format("%s=%s", p.getKey(), p.getValue()[0])).collect(Collectors.joining("&")); params += String.format("&SERVICENAME=%s&LOGIN=%s&PASSWORD=%s", wmsServiceName, wmsLogin, wmsPassword); if (StringUtils.isNotBlank(wmsLayers)) { params += String.format("&LAYERS=%s", wmsLayers); } String url = wmsProvider + "?" + params; log.trace("Loading image " + url); try { BufferedImage image = ImageIO.read(new URL(url)); if (image != null) { //image = transformWhiteToTransparent(image); OutputStream out = response.getOutputStream(); ImageIO.write(image, "png", out); image.flush(); out.close(); return; } } catch (Exception e) { log.trace("Failed loading WMS image for URL " + url + ": " + e); } // Fall back to return a blank image try { response.sendRedirect(BLANK_IMAGE); } catch (Exception e) { log.trace("Failed returning blank image for URL " + url + ": " + e); } }
From source file:org.niord.web.wms.WmsProxyServlet.java
/** * Masks out white colour/* ww w . j av a2 s. c om*/ * @param image the image to mask out * @return the resulting image */ @SuppressWarnings("unused") private BufferedImage transformWhiteToTransparent(BufferedImage image) { BufferedImage dest = image; if (image.getType() != BufferedImage.TYPE_INT_ARGB) { dest = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = dest.createGraphics(); g2.drawImage(image, 0, 0, null); g2.dispose(); image.flush(); } // Mask out the white pixels final int width = image.getWidth(); int[] imgData = new int[width]; for (int y = 0; y < dest.getHeight(); y++) { // fetch a line of data from each image dest.getRGB(0, y, width, 1, imgData, 0, 1); // apply the mask for (int x = 0; x < width; x++) { for (Color col : MASKED_COLORS) { int colDist = Math.abs(col.getRed() - (imgData[x] >> 16 & 0x000000FF)) + Math.abs(col.getGreen() - (imgData[x] >> 8 & 0x000000FF)) + Math.abs(col.getBlue() - (imgData[x] & 0x000000FF)); if (colDist <= COLOR_DIST) { imgData[x] = 0x00FFFFFF & imgData[x]; } } } // replace the data dest.setRGB(0, y, width, 1, imgData, 0, 1); } return dest; }
From source file:org.olat.core.commons.services.image.spi.AbstractImageHelper.java
private Size getImageSizeFallback(VFSLeaf media) { InputStream fileStream = null; BufferedImage imageSrc = null; try {//from w w w . ja va 2 s . co m fileStream = media.getInputStream(); if (fileStream != null) { imageSrc = ImageIO.read(fileStream); if (imageSrc == null) { // happens with faulty Java implementation, e.g. on MacOSX return null; } double realWidth = imageSrc.getWidth(); double realHeight = imageSrc.getHeight(); return new Size((int) realWidth, (int) realHeight, 0, 0, false); } else { return null; } } catch (IOException e) { // log error, don't do anything else log.error("Problem while setting image size to fit for resource::" + media, e); return null; } finally { IOUtils.closeQuietly(fileStream); if (imageSrc != null) { imageSrc.flush(); } } }
From source file:org.openmicroscopy.shoola.agents.imviewer.view.ImViewerModel.java
/** * Clears the images hosted by the tile if not <code>null</code>. * //w ww. j a v a2 s . c om * @param toClear The collection to handle. */ void clearTileImages(Collection<Tile> toClear) { if (toClear == null || toClear.size() == 0) return; Iterator<Tile> i = toClear.iterator(); Tile tile; Object image; BufferedImage bi; TextureData data; while (i.hasNext()) { tile = i.next(); image = tile.getImage(); if (image != null) { if (image instanceof BufferedImage) { bi = (BufferedImage) image; bi.getGraphics().dispose(); bi.flush(); tile.setImage(null); } else { data = (TextureData) image; data.flush(); tile.setImage(null); } } } }
From source file:org.openmrs.module.emrapi.person.image.EmrPersonImageServiceImpl.java
@Override public PersonImage savePersonImage(PersonImage personImage) { Person person = personImage.getPerson(); String base64EncodedImage = personImage.getBase64EncodedImage(); if (base64EncodedImage == null || base64EncodedImage.isEmpty()) return personImage; try {/*from www . j a v a2 s . com*/ File imageFile = new File(String.format("%s/%s.%s", emrApiProperties.getPersonImageDirectory().getAbsolutePath(), person.getUuid(), imageFormat)); byte[] decodedBytes = DatatypeConverter.parseBase64Binary(base64EncodedImage); BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(decodedBytes)); ImageIO.write(bufferedImage, imageFormat, imageFile); bufferedImage.flush(); personImage.setSavedImage(imageFile); log.info("Successfully created patient image at " + imageFile); } catch (Exception e) { log.error("Update patient image failed for : " + person); throw new APIException("Could not save patient image", e); } return personImage; }
From source file:org.uiautomation.ios.server.servlet.ResourceServlet.java
private boolean validImage(File f) throws IOException { InputStream is = new FileInputStream(f); try {//from w w w. ja va2 s. co m //is = new FileInputStream(f); final ImageInputStream imageInputStream = ImageIO.createImageInputStream(is); final Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageInputStream); if (!imageReaders.hasNext()) { // not an image return false; } final ImageReader imageReader = imageReaders.next(); imageReader.setInput(imageInputStream); final BufferedImage image = imageReader.read(0); if (image == null) { // empty return false; } image.flush(); return true; } catch (final IndexOutOfBoundsException e) { // truncated return false; } catch (final IIOException e) { if (e.getCause() instanceof EOFException) { // truncated return false; } } catch (Exception e) { return false; } finally { is.close(); } return true; }
From source file:oulib.aws.s3.S3Util.java
/** * Generate a small tiff file from large Tiff S3 bucket object <br> * Note: the small tiff file will have the same key path as the original one * /*from w w w. ja v a 2s. c om*/ * @param s3client : S3 client * @param s3 : S3 object that con * @param targetBucketName : the bucket that stores the small tiff file * @param targetKey : key of the object in the target bucket * @param compressionRate : compression rate * @return : PutObjectResult */ public static PutObjectResult generateSmallTiff(AmazonS3 s3client, S3Object s3, String targetBucketName, String targetKey, double compressionRate) { PutObjectResult result = null; ByteArrayOutputStream bos = null; ByteArrayOutputStream os = null; ByteArrayInputStream is = null; S3ObjectInputStream s = null; ByteArrayInputStream byteInputStream = null; try { System.setProperty("com.sun.media.jai.disableMediaLib", "true"); bos = new ByteArrayOutputStream(); s = s3.getObjectContent(); byte[] bytes = IOUtils.toByteArray(s); byteInputStream = new ByteArrayInputStream(bytes); TIFFDecodeParam param = new TIFFDecodeParam(); ImageDecoder dec = ImageCodec.createImageDecoder("TIFF", byteInputStream, param); RenderedImage image = dec.decodeAsRenderedImage(); RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); RenderedOp resizedImage = JAI.create("SubsampleAverage", image, compressionRate, compressionRate, qualityHints); TIFFEncodeParam params = new com.sun.media.jai.codec.TIFFEncodeParam(); resizedImage = JAI.create("encode", resizedImage, bos, "TIFF", params); BufferedImage imagenew = resizedImage.getSourceImage(0).getAsBufferedImage(); os = new ByteArrayOutputStream(); ImageIO.write(imagenew, "tif", os); is = new ByteArrayInputStream(os.toByteArray()); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentLength(os.toByteArray().length); metadata.setContentType("image/tiff"); metadata.setLastModified(new Date()); os.close(); imagenew.flush(); result = s3client.putObject(new PutObjectRequest(targetBucketName, targetKey, is, metadata)); } catch (IOException | AmazonClientException ex) { Logger.getLogger(S3Util.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (bos != null) { bos.close(); } if (os != null) { os.close(); } if (is != null) { is.close(); } if (s != null) { s.close(); } if (byteInputStream != null) { byteInputStream.close(); } } catch (IOException ex) { Logger.getLogger(S3Util.class.getName()).log(Level.SEVERE, null, ex); } } return result; }
From source file:screencaptcher.Screen.java
@Override public void run() { while (continueLoop) { try {// ww w. j a v a2 s .c om BufferedImage image = robot.createScreenCapture(rectangle); File temp = File.createTempFile("imtemps", ".tmp"); OutStrem = new FileOutputStream(temp); ImageIO.write(image, "JPEG", OutStrem); Thread.sleep(400); OutStrem.flush(); image.flush(); byte[] bFile = new byte[(int) temp.length()]; try (FileInputStream fileInputStream = new FileInputStream(temp)) { fileInputStream.read(bFile); } this.SaveinDB(bFile); image.flush(); OutStrem.flush(); OutStrem.close(); image = null; Thread.sleep(Sleep - 400); temp.delete(); } catch (IOException ex) { System.err.println("ERROR SCREEN : " + ex.getMessage()); } catch (InterruptedException ex) { Logger.getLogger(Screen.class.getName()).log(Level.SEVERE, null, ex); } } }
From source file:util.ui.UiUtilities.java
/** * Scales an image to a specific size and returns an BufferedImage * * @param img//from w w w. ja va 2 s.c o m * Scale this image * @param width * new width * @param height * new height * @param type The type of the image. * @return Scaled BufferedImage * * @since 3.0 */ public static BufferedImage scaleIconToBufferedImage(BufferedImage img, int width, int height, int type, Color backgroundColor) { // Scale Image Image image = img.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage im = new BufferedImage(width, height, type); Graphics2D g2 = im.createGraphics(); if (backgroundColor != null) { g2.setColor(backgroundColor); g2.fillRect(0, 0, width, height); } g2.drawImage(image, null, null); g2.dispose(); im.flush(); return im; }