Example usage for javax.imageio ImageIO write

List of usage examples for javax.imageio ImageIO write

Introduction

In this page you can find the example usage for javax.imageio ImageIO write.

Prototype

public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException 

Source Link

Document

Writes an image using an arbitrary ImageWriter that supports the given format to an OutputStream .

Usage

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;
}