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:cn.shengyuan.yun.admin.system.controller.CommonController.java

@RequestMapping(value = "/captchaImage", method = RequestMethod.GET)
public String captchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception {

    response.setDateHeader("Expires", 0);
    // Set standard HTTP/1.1 no-cache headers.
    response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
    response.addHeader("Cache-Control", "post-check=0, pre-check=0");
    // Set standard HTTP/1.0 no-cache header.
    response.setHeader("Pragma", "no-cache");
    // return a jpeg
    response.setContentType("image/jpeg");
    // create the text for the image
    String capText = captchaProducer.createText();
    // store the text in the session
    request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
    // create the image with the text
    BufferedImage bi = captchaProducer.createImage(capText);
    ServletOutputStream out = response.getOutputStream();
    // write the data out
    ImageIO.write(bi, "jpg", out);
    try {/*  w  w w.j a va  2 s . c  o  m*/
        out.flush();
    } finally {
        out.close();
    }
    return null;

}

From source file:info.magnolia.filesystembrowser.app.imageprovider.FSImageProvider.java

private InputStream createStreamSource(final BufferedImage img, final String formatName) {
    ByteArrayOutputStream out2 = null;
    try {//w  ww.  j a va  2s  .c  o  m
        if (img == null) {
            return null;
        }
        out2 = new ByteArrayOutputStream();
        ImageIO.write(img, formatName, out2);
        return new ByteArrayInputStream(out2.toByteArray());
    } catch (IOException e) {

    } finally {
        IOUtils.closeQuietly(out2);
    }
    return null;
}

From source file:com.shelfmap.simplequery.domain.BlobReferenceTest.java

@Then("we can get a deserialized java object.")
public void assertRerource() throws BlobRestoreException, IOException {
    BufferedImage image = blob.getContent();

    ByteArrayOutputStream source = new ByteArrayOutputStream();
    ByteArrayOutputStream target = new ByteArrayOutputStream();

    try {/*from w  ww  . j a v a2s.  co  m*/
        ImageIO.write(testImage, "jpeg", source);
        ImageIO.write(image, "jpeg", target);
    } finally {
        IOUtils.closeQuietly(source);
        IOUtils.closeQuietly(target);
    }

    assertThat(source.toByteArray(), is(target.toByteArray()));
}

From source file:com.abelsky.idea.geekandpoke.entries.Entry.java

private void writeObject(@NotNull ObjectOutputStream out) throws IOException {
    out.defaultWriteObject();// w  w w  .  ja  va  2  s  .c o m
    if (imageRef != null) {
        @Nullable
        BufferedImage image = imageRef.get();
        if (image == null) {
            image = fetchCachedImage();
            imageRef = new SoftReference<BufferedImage>(image);
        }
        ImageIO.write(image, "png", ImageIO.createImageOutputStream(out));
    }
}

From source file:net.sourceforge.subsonic.controller.AvatarUploadController.java

private void createAvatar(String fileName, byte[] data, String username, Map<String, Object> map)
        throws IOException {

    BufferedImage image;// w w w  . j  a v a2 s. c o  m
    try {
        image = ImageIO.read(new ByteArrayInputStream(data));
        if (image == null) {
            throw new Exception(
                    "Failed to decode incoming image: " + fileName + " (" + data.length + " bytes).");
        }
        int width = image.getWidth();
        int height = image.getHeight();
        String mimeType = StringUtil.getMimeType(FilenameUtils.getExtension(fileName));

        // Scale down image if necessary.
        if (width > MAX_AVATAR_SIZE || height > MAX_AVATAR_SIZE) {
            double scaleFactor = (double) MAX_AVATAR_SIZE / (double) Math.max(width, height);
            height = (int) (height * scaleFactor);
            width = (int) (width * scaleFactor);
            image = CoverArtController.scale(image, width, height);
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            ImageIO.write(image, "jpeg", out);
            data = out.toByteArray();
            mimeType = StringUtil.getMimeType("jpeg");
            map.put("resized", true);
        }
        Avatar avatar = new Avatar(0, fileName, new Date(), mimeType, width, height, data);
        settingsService.setCustomAvatar(avatar, username);
        LOG.info("Created avatar '" + fileName + "' (" + data.length + " bytes) for user " + username);

    } catch (Exception x) {
        LOG.warn("Failed to upload personal image: " + x, x);
        map.put("error", x);
    }
}

From source file:de.ailis.wlandsuite.WebExtract.java

/**
 * Extracts the tilesets.//from  w w  w  .  j  ava2 s  .com
 *
 * @param sourceDirectory
 *            The input directory
 * @param targetDirectory
 *            The output directory
 * @throws IOException
 *             When file operation fails.
 */

private void extractTilesets(final File sourceDirectory, final File targetDirectory) throws IOException {
    // Extract tilesets
    final File imagesDirectory = new File(targetDirectory, "images");
    imagesDirectory.mkdirs();
    for (int gameId = 1; gameId <= 2; gameId++) {
        final String filename = "allhtds" + gameId;

        log.info("Reading " + filename);
        final InputStream stream = new FileInputStream(new File(sourceDirectory, filename));
        try {
            final Htds htds = Htds.read(stream);

            int tilesetId = 0;
            log.info("Writing tileset " + tilesetId);
            for (final HtdsTileset tileset : htds.getTilesets()) {
                final List<Pic> tiles = tileset.getTiles();
                final int scale = this.scaleFilter.getScaleFactor();
                final BufferedImage out;
                final int outType = this.scaleFilter.getImageType();
                if (outType == -1)
                    out = new EgaImage(10 * 16 * scale,
                            (int) Math.ceil((double) tiles.size() / 10) * 16 * scale);
                else
                    out = new BufferedImage(10 * 16 * scale,
                            (int) Math.ceil((double) tiles.size() / 10) * 16 * scale, outType);
                final Graphics2D g = out.createGraphics();
                int i = 0;
                for (final Pic tile : tileset.getTiles()) {
                    g.drawImage(this.scaleFilter.scale(tile), i % 10 * 16 * scale, i / 10 * 16 * scale, null);
                    i++;
                }

                ImageIO.write(out, "png", new File(imagesDirectory, "tileset" + gameId + tilesetId + ".png"));
                tilesetId++;
            }
        } finally {
            stream.close();
        }
    }
}

From source file:com.nemesis.admin.UploadServlet.java

/**
 * @param request/*from  w  ww  . j  a  v a2 s  .com*/
 * @param response
 * @throws javax.servlet.ServletException
 * @throws java.io.IOException
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
 * response)
 *
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (request.getParameter("getfile") != null && !request.getParameter("getfile").isEmpty()) {
        File file = getFile(request, request.getParameter("getfile"));
        if (file.exists()) {
            int bytes = 0;
            try (ServletOutputStream op = response.getOutputStream()) {
                response.setContentType(getMimeType(file));
                response.setContentLength((int) file.length());
                response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");

                byte[] bbuf = new byte[1024];
                DataInputStream in = new DataInputStream(new FileInputStream(file));

                while ((in != null) && ((bytes = in.read(bbuf)) != -1)) {
                    op.write(bbuf, 0, bytes);
                }

                in.close();
                op.flush();
            }
        }
    } else if (request.getParameter("delfile") != null && !request.getParameter("delfile").isEmpty()) {
        File file = getFile(request, request.getParameter("delfile"));
        if (file.exists()) {
            file.delete(); // TODO:check and report success
        }
    } else if (request.getParameter("getthumb") != null && !request.getParameter("getthumb").isEmpty()) {
        File file = getFile(request, request.getParameter("getthumb"));
        if (file.exists()) {
            System.out.println(file.getAbsolutePath());
            String mimetype = getMimeType(file);
            if (mimetype.endsWith("png") || mimetype.endsWith("jpeg") || mimetype.endsWith("jpg")
                    || mimetype.endsWith("gif")) {
                BufferedImage im = ImageIO.read(file);
                if (im != null) {
                    int newWidth = 75;
                    if (request.getParameter("w") != null) {
                        try {
                            newWidth = Integer.parseInt(request.getParameter("w"));
                        } catch (Exception e) {
                            //Se mantiene el valor por defecto de 75
                        }
                    }

                    BufferedImage thumb = Scalr.resize(im, newWidth);
                    if (request.getParameter("h") != null) {
                        try {
                            thumb = Scalr.crop(thumb, newWidth, Integer.parseInt(request.getParameter("h")));
                        } catch (IllegalArgumentException | ImagingOpException e) {
                            //Se mantienen las proporciones.
                        }
                    }

                    ByteArrayOutputStream os = new ByteArrayOutputStream();
                    if (mimetype.endsWith("png")) {
                        ImageIO.write(thumb, "PNG", os);
                        response.setContentType("image/png");
                    } else if (mimetype.endsWith("jpeg")) {
                        ImageIO.write(thumb, "jpg", os);
                        response.setContentType("image/jpeg");
                    } else if (mimetype.endsWith("jpg")) {
                        ImageIO.write(thumb, "jpg", os);
                        response.setContentType("image/jpeg");
                    } else {
                        ImageIO.write(thumb, "GIF", os);
                        response.setContentType("image/gif");
                    }
                    try (ServletOutputStream srvos = response.getOutputStream()) {
                        response.setContentLength(os.size());
                        response.setHeader("Content-Disposition",
                                "inline; filename=\"" + file.getName() + "\"");
                        os.writeTo(srvos);
                        srvos.flush();
                    }
                }
            }
        } // TODO: check and report success
    } else {
        PrintWriter writer = response.getWriter();
        writer.write("call POST with multipart form data");
    }
}

From source file:iqq.app.module.QQAccountModule.java

@IMEventHandler(IMEventType.SELF_FACE_UPDATE)
protected void processIMSelfFaceUpdate(IMEvent event) {
    QQAccount account = (QQAccount) event.getTarget();
    QQAccountEntry entry = entryMap.get(account.getUsername());
    if (entry != null) {
        try {//from   w w  w .j av a  2s. com
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            ImageIO.write(account.getFace(), "png", out);
            entry.face = out.toByteArray();
            submitRecentAccountSave(entry);
        } catch (IOException e) {
            LOG.warn("write face error!", e);
        }
    }
}

From source file:com.codenvy.corp.MainPage.java

public void gotoManageViewAndGrabCLDIDEBornDown() throws IOException, InterruptedException {
    driver.get(String.format(mangeViewUrlCLDIDE, agileIdPLF));
    new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOf(burnDownMAinContainer));
    burnDownNamePlf = new WebDriverWait(driver, 10)
            .until(ExpectedConditions.visibilityOfElementLocated(By.id("ghx-items-trigger"))).getText();
    Thread.sleep(10000);/*from   ww w  .  ja v a  2  s. com*/
    File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    Point p = burnDownMAinContainer.getLocation();
    int width = burnDownMAinContainer.getSize().getWidth();
    int height = burnDownMAinContainer.getSize().getHeight();
    BufferedImage img = ImageIO.read(screen);
    BufferedImage dest = img.getSubimage(p.getX(), p.getY() - 50, width, height);
    ImageIO.write(dest, "png", screen);
    File file = new File(burnDownNamePlf + ".png");
    FileUtils.copyFile(screen, file);
    addText(file, burnDownNamePlf);

}

From source file:cpcc.ros.services.RosImageConverterTest.java

@Test(dataProvider = "imageDataprovider")
public void shouldConvertGenericImages(int height, int width, String encoding, String imageName)
        throws IOException {
    InputStream stream = RosImageConverterTest.class.getResourceAsStream(imageName);
    byte[] imageData = IOUtils.toByteArray(stream);

    when(buffer.array()).thenReturn(imageData);
    //        when(buffer.hasArray()).thenReturn(true);

    when(message.getEncoding()).thenReturn(encoding);
    when(message.getHeight()).thenReturn(height);
    when(message.getWidth()).thenReturn(width);
    when(message.getData()).thenReturn(ChannelBuffers.copiedBuffer(ByteOrder.nativeOrder(), imageData));

    BufferedImage result = conv.messageToBufferedImage(message);
    assertThat(result).isNotNull();//from www  . j a  v a  2 s  .com

    assertThat(result.getHeight()).isEqualTo(height);
    assertThat(result.getWidth()).isEqualTo(width);

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ImageIO.write(result, encoding, bos);

    byte[] resultImageData = bos.toByteArray();

    assertThat(resultImageData.length).isEqualTo(imageData.length);
    // assertThat(resultImageData).isEqualTo(imageData);
}