List of usage examples for javax.imageio ImageIO write
public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException
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); } } }