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:visualizer.datamining.dataanalysis.CreateLineGraph.java

private void saveImageButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveImageButtonActionPerformed
    int result = SaveDialog.showSaveDialog(new PNGFilter(), this, "image.png");

    if (result == JFileChooser.APPROVE_OPTION) {
        String filename = SaveDialog.getFilename();

        try {/* w ww .  jav a2s . c  o m*/
            BufferedImage image = new BufferedImage(panel.getWidth(), panel.getHeight(),
                    BufferedImage.TYPE_INT_RGB);
            panel.paint(image.getGraphics());
            ImageIO.write(image, "png", new File(filename));
        } catch (IOException ex) {
            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
        }
    }
}

From source file:org.drools.planner.benchmark.core.statistic.calculatecount.CalculateCountProblemStatistic.java

protected void writeGraphStatistic() {
    XYSeriesCollection seriesCollection = new XYSeriesCollection();
    for (SingleBenchmark singleBenchmark : problemBenchmark.getSingleBenchmarkList()) {
        CalculateCountSingleStatistic singleStatistic = (CalculateCountSingleStatistic) singleBenchmark
                .getSingleStatistic(problemStatisticType);
        XYSeries series = new XYSeries(singleBenchmark.getSolverBenchmark().getName());
        for (CalculateCountSingleStatisticPoint point : singleStatistic.getPointList()) {
            long timeMillisSpend = point.getTimeMillisSpend();
            long calculateCountPerSecond = point.getCalculateCountPerSecond();
            series.add(timeMillisSpend, calculateCountPerSecond);
        }//from   w  w w. j  a v  a 2  s. c  o m
        seriesCollection.addSeries(series);
    }
    NumberAxis xAxis = new NumberAxis("Time spend");
    xAxis.setNumberFormatOverride(new MillisecondsSpendNumberFormat());
    NumberAxis yAxis = new NumberAxis("Calculate count per second");
    yAxis.setAutoRangeIncludesZero(false);
    XYItemRenderer renderer = new XYLineAndShapeRenderer();
    XYPlot plot = new XYPlot(seriesCollection, xAxis, yAxis, renderer);
    plot.setOrientation(PlotOrientation.VERTICAL);
    JFreeChart chart = new JFreeChart(problemBenchmark.getName() + " calculate count statistic",
            JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    BufferedImage chartImage = chart.createBufferedImage(1024, 768);
    graphStatisticFile = new File(problemBenchmark.getProblemReportDirectory(),
            problemBenchmark.getName() + "CalculateCountStatistic.png");
    OutputStream out = null;
    try {
        out = new FileOutputStream(graphStatisticFile);
        ImageIO.write(chartImage, "png", out);
    } catch (IOException e) {
        throw new IllegalArgumentException("Problem writing graphStatisticFile: " + graphStatisticFile, e);
    } finally {
        IOUtils.closeQuietly(out);
    }
}

From source file:org.endeavour.mgmt.controller.servlet.CreateProjectPlan.java

private void createReportPage(Document aDocument, TaskSeries aTaskSeries, Date aStartDate, Date aEndDate,
        String aDescription) throws Exception {

    TaskSeriesCollection theDataset = new TaskSeriesCollection();
    theDataset.add(aTaskSeries);//ww w .ja  va  2s .  c  o m

    DateAxis theDateRange = new DateAxis(TIMELINE);
    theDateRange.setMinimumDate(aStartDate);
    theDateRange.setMaximumDate(aEndDate);

    JFreeChart theChart = ChartFactory.createGanttChart(aDescription, ARTIFACTS, null, theDataset, true, false,
            false);
    CategoryPlot theCategoryPlot = theChart.getCategoryPlot();
    theCategoryPlot.setRangeAxis(theDateRange);

    BufferedImage theChartImage = theChart.createBufferedImage(780, 520);
    ByteArrayOutputStream theOutputStream = new ByteArrayOutputStream();
    ImageIO.write(theChartImage, "png", theOutputStream);
    Image theDocumentImage = Image.getInstance(theOutputStream.toByteArray());
    aDocument.add(theDocumentImage);
}

From source file:de.uni_siegen.wineme.come_in.thumbnailer.thumbnailers.PDFBoxThumbnailer.java

@SuppressWarnings("unchecked")
@Override//from w w  w .j  a v a 2  s  .  c o  m
public void generateThumbnails(final File input, final File outputFolder)
        throws IOException, ThumbnailerException {
    PDDocument document = null;
    try {
        try {
            document = PDDocument.load(input);
        } catch (final IOException e) {
            throw new ThumbnailerException("Could not load PDF File", e);
        }

        final List<PDPage> allPages = document.getDocumentCatalog().getAllPages();
        int pageNumber = 0;
        for (final PDPage page : allPages) {
            final BufferedImage image = this.writeImageForPage(document, page, BufferedImage.TYPE_INT_RGB);

            final File outputFile = ThumbnailNamer.getFile(outputFolder, pageNumber);

            if (image.getWidth() == this.thumbWidth) {
                ImageIO.write(image, PDFBoxThumbnailer.OUTPUT_FORMAT, outputFile);
            } else {
                final ResizeImage resizer = new ResizeImage(this.thumbWidth, this.thumbHeight);
                resizer.resizeMethod = ResizeImage.RESIZE_FIT_BOTH_DIMENSIONS;
                resizer.setInputImage(image);
                resizer.writeOutput(outputFile);
            }

            pageNumber++;
        }

    } finally {
        if (document != null) {
            try {
                document.close();
            } catch (final IOException e) {
                // swallow exception on closing.
            }
        }
    }

}

From source file:com.tocsi.images.ImageListBean.java

public void handleFileUpload(FileUploadEvent event) {
    if (event.getFile() != null) {
        try {//w w  w  . j  a  va 2s .com
            UploadedFile uf = (UploadedFile) event.getFile();
            File folder = new File(GlobalsBean.destOriginal);
            //File folderThumb = new File(destThumbnail);
            String filename = FilenameUtils.getBaseName(uf.getFileName());
            String extension = FilenameUtils.getExtension(uf.getFileName());
            File file = File.createTempFile(filename + "-", "." + extension, folder);
            //File fileThumb = File.createTempFile(filename + "-", "." + extension, folderThumb);

            //resize image here
            BufferedImage originalImage = ImageIO.read(uf.getInputstream());
            InputStream is = uf.getInputstream();
            if (originalImage.getWidth() > 700) { //resize image if image's width excess 700px
                BufferedImage origImage = Scalr.resize(originalImage, Scalr.Method.QUALITY,
                        Scalr.Mode.FIT_TO_WIDTH, 640,
                        (int) ((originalImage.getHeight() / ((double) (originalImage.getWidth() / 700.0)))),
                        Scalr.OP_ANTIALIAS);
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                ImageIO.write(origImage, extension, os);
                is = new ByteArrayInputStream(os.toByteArray());
            }

            //create thumbnail
            BufferedImage thumbnail = Scalr.resize(ImageIO.read(uf.getInputstream()), 150);
            ByteArrayOutputStream osThumb = new ByteArrayOutputStream();
            ImageIO.write(thumbnail, extension, osThumb);
            InputStream isThumbnail = new ByteArrayInputStream(osThumb.toByteArray());

            try (InputStream input = is) {
                Files.copy(input, file.toPath(), StandardCopyOption.REPLACE_EXISTING);
            }

            try (InputStream input = isThumbnail) {
                Files.copy(input, Paths.get(GlobalsBean.destThumbnail + GlobalsBean.separator + file.getName()),
                        StandardCopyOption.REPLACE_EXISTING);
            }

            //File chartFile = new File(file.getAbsolutePath());
            //chart = new DefaultStreamedContent(new FileInputStream(chartFile), "image/jpg");
            ImageBean ib = new ImageBean();
            ib.setFilename(file.getName());
            ib.setThumbFile(file.getName());
            ib.setImageFileLocation(GlobalsBean.destOriginal + GlobalsBean.separator + file.getName());
            imageList.add(ib);
        } catch (IOException | IllegalArgumentException | ImagingOpException ex) {
            Utilities.displayError(ex.getMessage());
        }
    }
}

From source file:org.zht.framework.filter.jcaptcha.JCaptchaFilter.java

/**
 * ???.//from   w  ww. ja  va2s  . com
 */
protected void genernateCaptchaImage(final HttpServletRequest request, final HttpServletResponse response)
        throws IOException {

    response.setDateHeader("Expires", 0);
    response.addHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setContentType("image/jpeg");

    ServletOutputStream out = response.getOutputStream();
    try {
        String captchaId = request.getSession(true).getId();
        BufferedImage challenge = (BufferedImage) captchaService.getChallengeForID(captchaId,
                request.getLocale());
        ImageIO.write(challenge, "jpg", out);
        out.flush();
    } catch (CaptchaServiceException e) {
        logger.error(e.getMessage(), e);
    } finally {
        out.close();
    }
}

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

/**
 * @see de.ailis.wlandsuite.cli.ExtractProg#extract(java.io.File,
 *      java.io.File)//from   w  w  w  .j  av  a2 s .  co  m
 */

@Override
public void extract(File input, File output) throws IOException {
    Game game1, game2;
    Htds htds1, htds2;
    Sprites sprites;
    InputStream stream;

    // Read game 1
    log.info("Reading game1");
    stream = new FileInputStream(new File(input.getAbsolutePath() + File.separatorChar + "game1"));
    try {
        game1 = Game.read(stream);
    } finally {
        stream.close();
    }

    // Read game 2
    log.info("Reading game2");
    stream = new FileInputStream(new File(input.getAbsolutePath() + File.separatorChar + "game2"));
    try {
        game2 = Game.read(stream);
    } finally {
        stream.close();
    }

    // Read tileset 1
    log.info("Reading allhtds1");
    stream = new FileInputStream(new File(input.getAbsolutePath() + File.separatorChar + "allhtds1"));
    try {
        htds1 = Htds.read(stream);
    } finally {
        stream.close();
    }

    // Read tileset 2
    log.info("Reading allhtds2");
    stream = new FileInputStream(new File(input.getAbsolutePath() + File.separatorChar + "allhtds2"));
    try {
        htds2 = Htds.read(stream);
    } finally {
        stream.close();
    }

    // Read sprites
    stream = new FileInputStream(new File(input.getAbsolutePath() + File.separatorChar + "ic0_9.wlf"));
    try {
        log.info("Reading sprites");
        sprites = Sprites.read(stream);
    } finally {
        stream.close();
    }

    // Iterate over both game files
    int fileNo = 100;
    for (Game game : new Game[] { game1, game2 }) {
        // Iterate over all maps of the current game file
        for (GameMap gameMap : game.getMaps()) {
            log.info("Writing map " + fileNo);
            int tilesetId = gameMap.getInfo().getTileset();
            int size = gameMap.getMapSize();
            EgaImage image = new EgaImage(size * 16, size * 16);
            Graphics2D graphics = image.createGraphics();
            List<Pic> tiles;

            if (tilesetId < 4) {
                tiles = htds1.getTilesets().get(tilesetId).getTiles();
            } else {
                tiles = htds2.getTilesets().get(tilesetId - 4).getTiles();
            }
            TileMap map = gameMap.getTileMap();

            for (int y = 0; y < size; y++) {
                for (int x = 0; x < size; x++) {
                    int tile = map.getTile(x, y);

                    if (tile >= 10) {
                        graphics.drawImage(tiles.get(tile - 10), x * 16, y * 16, null);
                    } else {
                        graphics.drawImage(sprites.getSprites().get(tile), x * 16, y * 16, null);
                    }
                }
            }

            // Write the image to disk
            File file = new File(
                    String.format("%s%c%03d.png", new Object[] { output, File.separatorChar, fileNo }));
            ImageIO.write(image, "PNG", file);

            fileNo++;
        }
        fileNo = 200;
    }
}

From source file:edu.kit.dama.ui.components.TextImage.java

/**
 * Get the bytes of the final image.//  w  w  w.  ja  va 2 s.c om
 *
 * @return The byte array containing the bytes of the resulting image.
 *
 * @throws IOException if creating the image fails.
 */
public byte[] getBytes() throws IOException {
    Image transparentImage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(
            new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB).getSource(), new RGBImageFilter() {
                @Override
                public final int filterRGB(int x, int y, int rgb) {
                    return (rgb << 8) & 0xFF000000;
                }
            }));

    //create the actual image and overlay it by the transparent background
    BufferedImage outputImage = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2d = outputImage.createGraphics();
    g2d.drawImage(transparentImage, 0, 0, null);
    //draw the remaining stuff
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    g2d.setColor(color);
    g2d.fillRoundRect(0, 0, size, size, 20, 20);
    g2d.setColor(new Color(Math.round((float) color.getRed() * .9f), Math.round((float) color.getGreen() * .9f),
            Math.round((float) color.getBlue() * .9f)));
    g2d.drawRoundRect(0, 0, size - 1, size - 1, 20, 20);

    Font font = new Font("Dialog", Font.BOLD, size - 4);
    g2d.setFont(font);
    g2d.setColor(Color.WHITE);

    String s = text.toUpperCase().substring(0, 1);
    FontMetrics fm = g2d.getFontMetrics();
    float x = ((float) size - (float) fm.stringWidth(s)) / 2f;
    float y = ((float) fm.getAscent()
            + (float) ((float) size - ((float) fm.getAscent() + (float) fm.getDescent())) / 2f) - 1f;
    g2d.drawString(s, x, y);
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    ImageIO.write(outputImage, "png", bout);
    g2d.dispose();
    return bout.toByteArray();
}

From source file:ac.kaist.ccs.presentation.CCSHubSelectionCoverage.java

public CCSHubSelectionCoverage(final String title, List<Double> coverSourceNum) {

    super(title);
    this.title = title;
    final XYDataset dataset = createDataset(coverSourceNum);
    final JFreeChart chart = createChart(dataset);
    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());
    final ChartPanel chartPanel = new ChartPanel(chart);

    JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(new BorderLayout());
    JButton buttonExport = new JButton("Export");
    buttonPanel.add("East", buttonExport);
    buttonExport.addActionListener(new ActionListener() {
        ChartPanel chartPanel;//from  w w w.j  a va2s . c o m

        public ActionListener init(ChartPanel chartPanel) {
            this.chartPanel = chartPanel;
            return this;
        }

        @Override
        public void actionPerformed(ActionEvent arg0) {
            // TODO Auto-generated method stub
            Dimension size = chartPanel.getSize();

            try {
                //String outPath = textFieldSelectPath.getText();
                //String filename = "chromatography.png";
                //String path = outPath+"/"+filename;
                JFileChooser fileChooser = new JFileChooser();

                fileChooser.setCurrentDirectory(new File("/Users/mac/Desktop"));

                fileChooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter("JPEG", "jpeg"));

                int returnVal = fileChooser.showDialog(new JFrame(), "Open File Path");

                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    String inputPath = fileChooser.getSelectedFile().getAbsolutePath();
                    if (!inputPath.endsWith(".jpeg"))
                        inputPath = inputPath + ".jpeg";

                    OutputStream os = new FileOutputStream(inputPath);
                    System.out.println(inputPath + "///" + size.width + " " + size.height);
                    BufferedImage chartImage = chartPanel.getChart().createBufferedImage(size.width,
                            size.height, null);
                    ImageIO.write(chartImage, "png", os);
                    os.close();
                    JOptionPane.showMessageDialog(null, "Chart image was saved in " + inputPath);

                }

            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }.init(chartPanel));

    panel.add("Center", chartPanel);
    panel.add("South", buttonPanel);

    chartPanel.setPreferredSize(new java.awt.Dimension(700, 500));
    setContentPane(panel);

}

From source file:be.redtree.beidsign.signature.UserSignature.java

public void saveSignatureImage(BufferedImage image, String source) {

    // save the signature image as a child of the person
    NodeRef person = serviceRegistry.getPersonService().getPerson(user);

    if (person != null) {

        NodeRef sigNode = beidSignService.getUserSignatureNode(person,
                BEIDSignModel.ASSOC_SIGNERSIGNATUREIMAGE);

        if (sigNode == null) {
            // set up JSON source as property
            Map<QName, Serializable> sigProps = new HashMap<QName, Serializable>();
            sigProps.put(BEIDSignModel.PROP_SIGNATUREJSON, source);

            QName assocQName = QName.createQName(BEIDSignModel.BEID_MODEL_1_0_URI,
                    QName.createValidLocalName(user + "-signatureimage"));

            ChildAssociationRef sigChildRef = serviceRegistry.getNodeService().createNode(person,
                    BEIDSignModel.ASSOC_SIGNERSIGNATUREIMAGE, assocQName, BEIDSignModel.TYPE_SIGNATUREIMAGE,
                    sigProps);//www .j  a  v  a  2  s .c  o  m

            sigNode = sigChildRef.getChildRef();
        } else {
            serviceRegistry.getNodeService().setProperty(sigNode, BEIDSignModel.PROP_SIGNATUREJSON, source);
        }

        // get a writer, store the image content
        ContentWriter writer = serviceRegistry.getContentService().getWriter(sigNode, ContentModel.PROP_CONTENT,
                true);

        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(image, "png", baos);
            writer.putContent(new ByteArrayInputStream(baos.toByteArray()));

            PermissionService ps = serviceRegistry.getPermissionService();
            ps.clearPermission(sigNode, PermissionService.ALL_AUTHORITIES);
            ps.setInheritParentPermissions(sigNode, false);
        } catch (IOException ioex) {
            logger.warn("Could not save signature image as child of person: " + ioex);
        }
    }
}