List of usage examples for javax.imageio ImageIO write
public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException
From source file:com.hmsinc.epicenter.spatial.test.integration.SpatialScanIntegrationTest.java
public void testSyntheticOutbreak() throws Exception { final State ohio = geographyRepository.getStateByAbbreviation("OH"); assertNotNull(ohio);//from w ww .j a v a2 s . c om final DateTime start = new DateTime(); final SpatialScanGrid grid = createSpatialGrid(ohio); assertNotNull(grid); final PosteriorGrid result = bsss.runSpatialScan(grid, 5, 5); assertEquals(grid.getColumns(), result.getColumns()); assertEquals(grid.getRows(), result.getRows()); final long runningTime = new DateTime().getMillis() - start.getMillis(); logger.info("Running time for BSSS was {}ms", runningTime); assertTrue(1 - result.getPosteriorProbNoOutbreak() > 0.9); final GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326); final Set<Geometry> outbreakAreas = new HashSet<Geometry>(); for (int row = 0; row < result.getRows(); row++) { for (int column = 0; column < result.getColumns(); column++) { final double posterior = result.getPosterior(row, column); if (posterior > 0.1) { final StringBuffer data = new StringBuffer(); final CellLabel ident = (CellLabel) grid.getIdentifier(row, column); outbreakAreas.add(ident.getGeometry()); final Envelope env = ident.getGeometry().getEnvelopeInternal(); if (data.length() > 0) { data.append(", "); } data.append("([").append(row).append(", ").append(column).append("]: ").append("(baseline: ") .append(grid.getBaseline(row, column)).append(", value: ") .append(grid.getCount(row, column)).append(", posterior: ").append(posterior) .append(", extent: ").append(env.toString()).append(", label: ") .append(ident.getLabel()).append(")"); logger.info(data.toString()); } } } assertTrue(outbreakAreas.size() > 0); // Assert that the detected outbreak area contains 43130 (the synthetic spike) final GeometryCollection geom = geometryFactory .createGeometryCollection(outbreakAreas.toArray(new Geometry[outbreakAreas.size()])); final Envelope outbreakEnv = geom.getEnvelopeInternal(); assertNotNull(outbreakEnv); final Zipcode zip43130 = geographyRepository.getGeography("43130", Zipcode.class); assertNotNull(zip43130); assertEquals("43130", zip43130.getName()); logger.info("Detected outbreak region is: {}", outbreakEnv); logger.info("Outbreak should be in: {}", zip43130.getGeometry().getEnvelopeInternal()); assertTrue(outbreakEnv.intersects(zip43130.getGeometry().getEnvelopeInternal())); final BufferedImage image = spatialScanRenderer.renderGrid(result, ohio.getGeometry().getEnvelopeInternal(), null, 1600, 1200, SpatialGridUtils.createCellLabels(grid), ohio.getZipcodes()); assertNotNull(image); ImageIO.write(image, "png", new File("target/synthetic.png")); }
From source file:org.wallride.web.support.MediaHttpRequestHandler.java
private void resizeImage(Resource resource, File file, int width, int height, Media.ResizeMode mode) throws IOException { long startTime = System.currentTimeMillis(); if (width <= 0) { width = Integer.MAX_VALUE; }//from w w w . j ava 2s .c o m if (height <= 0) { height = Integer.MAX_VALUE; } BufferedImage image = ImageIO.read(resource.getInputStream()); ResampleOp resampleOp; BufferedImage resized; switch (mode) { case RESIZE: resampleOp = new ResampleOp(DimensionConstrain.createMaxDimension(width, height, true)); resampleOp.setFilter(ResampleFilters.getLanczos3Filter()); resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Normal); resized = resampleOp.filter(image, null); ImageIO.write(resized, StringUtils.getFilenameExtension(file.getName()), file); break; case CROP: float wr = (float) width / (float) image.getWidth(); float hr = (float) height / (float) image.getHeight(); float fraction = (wr > hr) ? wr : hr; if (fraction < 1) { resampleOp = new ResampleOp(DimensionConstrain.createRelativeDimension(fraction)); resampleOp.setFilter(ResampleFilters.getLanczos3Filter()); resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Normal); resized = resampleOp.filter(image, null); } else { resized = image; } if (resized.getWidth() > width) { resized = resized.getSubimage((resized.getWidth() - width) / 2, 0, width, resized.getHeight()); } else if (resized.getHeight() > height) { resized = resized.getSubimage(0, (resized.getHeight() - height) / 2, resized.getWidth(), height); } ImageIO.write(resized, StringUtils.getFilenameExtension(file.getName()), file); break; default: throw new IllegalStateException(); } long stopTime = System.currentTimeMillis(); logger.debug("Resized image: time [{}ms]", stopTime - startTime); }
From source file:io.github.karols.hocr4j.PageRenderer.java
/** * Renders this page on the given image and saves it as a PNG file. * The image is modified, not copied./*from w w w .ja va 2 s . c om*/ * * @param page page to render * @param outputFile output file * @throws IOException */ public void renderOnTop(@Nonnull Page page, @Nonnull BufferedImage image, @Nonnull File outputFile) throws IOException { renderOnTop(page, image); ImageIO.write(image, imageFormat, outputFile); }
From source file:com.mycollab.mobile.module.project.ui.ProjectCommentInputView.java
private void saveContentsToRepo(String attachmentPath) { if (MapUtils.isNotEmpty(fileStores)) { for (Map.Entry<String, File> entry : fileStores.entrySet()) { try { String fileName = entry.getKey(); File file = entry.getValue(); String fileExt = ""; int index = fileName.lastIndexOf("."); if (index > 0) { fileExt = fileName.substring(index + 1, fileName.length()); }/*from w w w .j av a 2 s .c om*/ if ("jpg".equalsIgnoreCase(fileExt) || "png".equalsIgnoreCase(fileExt)) { try { BufferedImage bufferedImage = ImageIO.read(file); int imgHeight = bufferedImage.getHeight(); int imgWidth = bufferedImage.getWidth(); BufferedImage scaledImage; float scale; float destWidth = 974; float destHeight = 718; float scaleX = Math.min(destHeight / imgHeight, 1); float scaleY = Math.min(destWidth / imgWidth, 1); scale = Math.min(scaleX, scaleY); scaledImage = ImageUtil.scaleImage(bufferedImage, scale); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); ImageIO.write(scaledImage, fileExt, outStream); resourceService.saveContent( MobileAttachmentUtils.constructContent(fileName, attachmentPath), UserUIContext.getUsername(), new ByteArrayInputStream(outStream.toByteArray()), MyCollabUI.getAccountId()); } catch (IOException e) { LOG.error("Error in upload file", e); resourceService.saveContent( MobileAttachmentUtils.constructContent(fileName, attachmentPath), UserUIContext.getUsername(), new FileInputStream(file), MyCollabUI.getAccountId()); } } else { resourceService.saveContent( MobileAttachmentUtils.constructContent(fileName, attachmentPath), UserUIContext.getUsername(), new FileInputStream(file), MyCollabUI.getAccountId()); } } catch (FileNotFoundException e) { LOG.error("Error when attach content in UI", e); } } } }
From source file:net.frogmouth.ddf.nitfinputtransformer.NitfInputTransformer.java
protected byte[] getThumbnail(SlottedNitfParseStrategy slottedNitf) { if (slottedNitf.getGraphicSegmentHeaders().isEmpty()) { LOGGER.debug("Loaded file, but found no graphic segments."); return null; }/*from w w w.j a v a 2 s .c o m*/ try { NitfGraphicSegmentHeader segment = slottedNitf.getGraphicSegmentHeaders().get(0); CgmParser parser = new CgmParser(slottedNitf.getGraphicSegmentData().get(0)); parser.buildCommandList(); if (segment.getBoundingBox2Column() > 0 && segment.getBoundingBox2Row() > 0) { BufferedImage targetImage = new BufferedImage(segment.getBoundingBox2Column(), segment.getBoundingBox2Row(), BufferedImage.TYPE_INT_ARGB); CgmRenderer renderer = new CgmRenderer(); renderer.setTargetImageGraphics((Graphics2D) targetImage.getGraphics(), segment.getBoundingBox2Column(), segment.getBoundingBox2Row()); renderer.render(parser.getCommandList()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(targetImage, "jpg", baos); return baos.toByteArray(); } else { LOGGER.debug("No image to generate"); } } catch (IOException e) { LOGGER.debug("Failed to parse image from nitf", e); } return null; }
From source file:it.smartcommunitylab.parking.management.web.manager.MarkerIconStorage.java
private void generateColoredMarker(String basePath, String company, String entity, String color) throws IOException { List<String> markerDetails = getMarkerIconDetails(company, entity); String markerIcon = TEMPLATE_FILE; Color colorSample = DEFAULT_TEMPLATE_SAMPLE_COLOR; if (new File(basePath + ICON_FOLDER + TEMPLATE_PREFIX + entity + TEMPLATE_EXT).exists()) { markerIcon = TEMPLATE_PREFIX + entity + TEMPLATE_EXT; colorSample = templateSampleColor.get(entity); if (colorSample == null) { colorSample = DEFAULT_TEMPLATE_SAMPLE_COLOR; }//from w ww . j a v a2 s . c o m } if (markerDetails != null) { markerIcon = markerDetails.get(0); colorSample = new Color(Integer.parseInt(markerDetails.get(1), 16)); } BufferedImage templateIcon = ImageIO .read(new File(getIconFolder(basePath, ICON_FOLDER_TEMPLATE) + markerIcon)); BufferedImage coloredMarker = changeColor(templateIcon, colorSample, new Color(Integer.parseInt(color, 16))); ImageIO.write(coloredMarker, ICON_TYPE, new File(getIconFolder(basePath, ICON_FOLDER_CACHE) + company + "-" + entity + "-" + color + ICON_EXTENSION)); }
From source file:gr.abiss.calipso.fs.FilePersistenceService.java
public default String saveFile(BufferedImage img, long contentLength, String contentType, String path) throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageIO.write(img, getImageIoFormat(contentType), os); return saveFile(new ByteArrayInputStream(os.toByteArray()), contentLength, contentType, path); }
From source file:com.sat.dbds.vcs.login.LoginStepDef.java
/** * Start scenario//from ww w . j a va 2 s .c o m * <pre> * <b> Gherkin </b> * <code> @Before(order = 1)</code> * </pre>. * * @param by the by * @param loc the loc * @throws IOException Signals that an I/O exception has occurred. */ void DownloadImage(By by, String loc) throws IOException { WebElement Image = SeleniumUtilities.getDriver().findElement(by); File screen = ((TakesScreenshot) SeleniumUtilities.getDriver()).getScreenshotAs(OutputType.FILE); int width = Image.getSize().getWidth(); int height = Image.getSize().getHeight(); BufferedImage img = ImageIO.read(screen); BufferedImage dest = img.getSubimage(Image.getLocation().getX(), Image.getLocation().getY(), width, height); ImageIO.write(dest, "png", screen); File file = new File(loc); FileUtils.copyFile(screen, file); }
From source file:algorithm.QRCodeWatermarking.java
/** * Creates a PNG image that contains the QR-code with the information from * the payload file. The image has the same name as the payload file. * /*from w w w .j a va 2s. com*/ * @param payload * @return qr code as png image file * @throws IOException */ private File createBarcodeFile(File payload, String imageFormat, String usedMethod) throws IOException { // Create restoration metadata only for the payload file to spare space. PayloadSegment metadata = new PayloadSegment(payload); metadata.addOptionalProperty("usedMethod", usedMethod); byte[] payloadSegment = metadata.getPayloadSegmentBytes(); String barcodeInformation = new String(payloadSegment); int size = getQRCodeSize(); String outputFileName = FilenameUtils.removeExtension(getOutputFileName(payload)) + "." + imageFormat; File outputFile = new File(outputFileName); Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); BitMatrix byteMatrix = encodeWithQRCode(barcodeInformation, hintMap, size); if (byteMatrix == null) { return null; } BufferedImage image = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, size, size); graphics.setColor(Color.BLACK); for (int x = 0; x < size; x++) { for (int y = 0; y < size; y++) { if (byteMatrix.get(x, y)) { graphics.fillRect(x, y, 1, 1); } } } ImageIO.write(image, imageFormat, outputFile); return outputFile; }