List of usage examples for java.awt.image BufferedImage BufferedImage
public BufferedImage(int width, int height, int imageType)
From source file:edu.kit.dama.ui.components.TextImage.java
/** * Get the bytes of the final image./* w w w . j a v a 2 s . c o m*/ * * @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:BufferedImageThread.java
public void paintComponent(Graphics g) { super.paintComponent(g); Dimension d = getSize();//from ww w. j a v a2 s.c o m bi = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_ARGB); Graphics2D big = bi.createGraphics(); step(d.width, d.height); AffineTransform at = new AffineTransform(); at.setToIdentity(); at.translate(x, y); at.rotate(Math.toRadians(rotate)); at.scale(scale, scale); big.drawImage(image, at, this); Graphics2D g2D = (Graphics2D) g; g2D.drawImage(bi, 0, 0, null); big.dispose(); }
From source file:fungus.JungVisualizer.java
public void saveAsPNG() { String filePath = String.format("%s/%s-%03d.png", imageDir, nameFragment, CDState.getCycle()); File dir = new File(imageDir); dir.mkdir();/*from w ww . ja v a 2 s. c o m*/ Dimension size = visualizer.getSize(); BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = image.createGraphics(); visualizer.paint(g2); try { File file = new File(filePath); ImageIO.write(image, "png", file); } catch (Exception e) { System.out.println(e); } }
From source file:ConvolveApp.java
public void createBufferedImages() { biSrc = new BufferedImage(displayImage.getWidth(this), displayImage.getHeight(this), BufferedImage.TYPE_INT_RGB); big = biSrc.createGraphics();/*from ww w . j a v a2 s . co m*/ big.drawImage(displayImage, 0, 0, this); biDest = new BufferedImage(displayImage.getWidth(this), displayImage.getHeight(this), BufferedImage.TYPE_INT_RGB); }
From source file:de.mpg.imeji.logic.storage.util.ImageUtils.java
/** * Scale a {@link BufferedImage} to new size. Is faster than the basic {@link ImageUtils}.scaleImage method, has the * same quality. If it is a thumbnail, cut the images to fit into the raster * //from w w w .j a v a2 s. com * @param image original image * @param size the size to be resized to * @param resolution the type of the image. Might be thumb or web * @return the resized images * @throws Exception */ public static BufferedImage scaleImageFast(BufferedImage image, int size, FileResolution resolution) throws Exception { int width = image.getWidth(null); int height = image.getHeight(null); BufferedImage newImg = null; Image rescaledImage; if (width > height) { if (FileResolution.THUMBNAIL.equals(resolution)) { newImg = new BufferedImage(height, height, BufferedImage.TYPE_INT_RGB); Graphics g1 = newImg.createGraphics(); g1.drawImage(image, (height - width) / 2, 0, null); if (height > size) rescaledImage = getScaledInstance(newImg, size, size, RenderingHints.VALUE_INTERPOLATION_BILINEAR, RESCALE_HIGH_QUALITY); else rescaledImage = newImg; } else rescaledImage = getScaledInstance(image, size, height * size / width, RenderingHints.VALUE_INTERPOLATION_BILINEAR, RESCALE_HIGH_QUALITY); } else { if (FileResolution.THUMBNAIL.equals(resolution)) { newImg = new BufferedImage(width, width, BufferedImage.TYPE_INT_RGB); Graphics g1 = newImg.createGraphics(); g1.drawImage(image, 0, (width - height) / 2, null); if (width > size) rescaledImage = getScaledInstance(newImg, size, size, RenderingHints.VALUE_INTERPOLATION_BILINEAR, RESCALE_HIGH_QUALITY); else rescaledImage = newImg; } else rescaledImage = getScaledInstance(image, width * size / height, size, RenderingHints.VALUE_INTERPOLATION_BILINEAR, RESCALE_HIGH_QUALITY); } BufferedImage rescaledBufferedImage = new BufferedImage(rescaledImage.getWidth(null), rescaledImage.getHeight(null), BufferedImage.TYPE_INT_RGB); Graphics g2 = rescaledBufferedImage.getGraphics(); g2.drawImage(rescaledImage, 0, 0, null); return rescaledBufferedImage; }
From source file:ca.sqlpower.wabit.report.ResultSetRendererTest.java
@Override protected void setUp() throws Exception { super.setUp(); this.query = new QueryCache(getContext()); getWorkspace().addQuery(query, getSession()); query.setDataSource((JDBCDataSource) getSession().getDataSources().getDataSource("regression_test")); getWorkspace().addChild(query, 0);/*from w w w.j a va 2 s .c o m*/ renderer = new ResultSetRenderer(query); parentCB = new ContentBox(); parentCB.setContentRenderer(renderer); BufferedImage image = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); graphics = image.getGraphics(); Report report = new Report("report"); report.getPage().addContentBox(parentCB); getWorkspace().addReport(report); }
From source file:trendgraph.XYLineChart_AWT.java
public XYLineChart_AWT(int yearStart, int yearEnd, String[] creditUnionName, String columnName) throws SQLException { super("Graph"); super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.yearStart = yearStart; this.yearEnd = yearEnd; this.creditUnionName = creditUnionName; this.columnName = columnName; saveGraphButton = new JButton("Save Graph"); saveGraphButton.setBorderPainted(false); saveGraphButton.setFocusPainted(false); JFreeChart xylineChart = ChartFactory.createXYLineChart("CU Report", "Year (YYYY)", //X-axis columnName, //Y-axis (replace with columnName createDataset(), PlotOrientation.VERTICAL, true, true, false); ChartPanel chartPanel = new ChartPanel(xylineChart); chartPanel.setPreferredSize(new java.awt.Dimension(1000, 800)); //(x, y) final XYPlot plot = xylineChart.getXYPlot(); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); renderer.setSeriesPaint(0, Color.RED); //can be GREEN, YELLOW, ETC. renderer.setSeriesStroke(0, new BasicStroke(3.0f)); //Font size renderer.setSeriesPaint(1, Color.BLUE); //can be GREEN, YELLOW, ETC. renderer.setSeriesStroke(1, new BasicStroke(3.0f)); //Font size renderer.setSeriesPaint(2, Color.GREEN); //can be GREEN, YELLOW, ETC. renderer.setSeriesStroke(2, new BasicStroke(3.0f)); //Font size renderer.setSeriesPaint(3, Color.yellow); //can be GREEN, YELLOW, ETC. renderer.setSeriesStroke(3, new BasicStroke(3.0f)); //Font size plot.setRenderer(renderer);/*from w w w .j av a 2 s . c o m*/ chartPanel.setLayout(new FlowLayout(FlowLayout.TRAILING)); chartPanel.add(saveGraphButton); setContentPane(chartPanel); pack(); RefineryUtilities.centerFrameOnScreen(this); setVisible(true); saveGraphButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Rectangle rect = chartPanel.getBounds(); FileChooser chooser = new FileChooser(); //get chosen path and save the variable String path = chooser.getPath(); path = path.replace("\\", "/"); String format = "png"; String fileName = path + "." + format; BufferedImage captureImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_ARGB); chartPanel.paint(captureImage.getGraphics()); File file = new File(fileName); try { ImageIO.write(captureImage, format, file); //write data to file } catch (IOException ex) { Logger.getLogger(XYLineChart_AWT.class.getName()).log(Level.SEVERE, null, ex); } } }); }
From source file:Myopia.java
@Override public void paint(Graphics g, JComponent c) { int w = c.getWidth(); int h = c.getHeight(); if (w == 0 || h == 0) { return;/*from w w w. j a v a 2 s . c o m*/ } // Only create the offscreen image if the one we have // is the wrong size. if (mOffscreenImage == null || mOffscreenImage.getWidth() != w || mOffscreenImage.getHeight() != h) { mOffscreenImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); } Graphics2D ig2 = mOffscreenImage.createGraphics(); ig2.setClip(g.getClip()); super.paint(ig2, c); ig2.dispose(); Graphics2D g2 = (Graphics2D) g; g2.drawImage(mOffscreenImage, mOperation, 0, 0); }
From source file:eu.planets_project.tb.impl.data.util.ImageThumbnail.java
/** * Create a scaled jpeg of an image. The width/height ratio is preserved. * /*from www .ja v a 2 s. c om*/ * <p> * If image is smaller than thumbWidth x thumbHeight, it will be magnified, * otherwise it will be scaled down. * </p> * * @param image * the image to reduce * @param thumbWidth * the maximum width of the thumbnail * @param thumbHeight * the maximum heigth of the thumbnail * @param quality * the jpeg quality ot the thumbnail * @param out * a stream where the thumbnail data is written to */ public static void createThumb(Image image, int thumbWidth, int thumbHeight, OutputStream out) throws Exception { int imageWidth = image.getWidth(null); int imageHeight = image.getHeight(null); double thumbRatio = (double) thumbWidth / (double) thumbHeight; double imageRatio = (double) imageWidth / (double) imageHeight; if (thumbRatio < imageRatio) { thumbHeight = (int) (thumbWidth / imageRatio); } else { thumbWidth = (int) (thumbHeight * imageRatio); } // draw original image to thumbnail image object and // scale it to the new size on-the-fly BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics2D = thumbImage.createGraphics(); graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); graphics2D.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null); // save thumbnail image to out stream log.debug("Start writing rescaled image..."); ImageIO.write(thumbImage, "png", out); log.debug("DONE writing rescaled image..."); }
From source file:org.kuali.mobility.people.service.PeopleServiceImpl.java
@Override public BufferedImage generateObfuscatedImage(String text) { int width = 250; int height = 25; BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = bufferedImage.createGraphics(); Font font = new Font("Arial", Font.PLAIN, 14); g2d.setFont(font);//from w w w .j ava2 s . c o m RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); rh.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2d.setRenderingHints(rh); Paint bg = new Color(255, 255, 255); g2d.setPaint(bg); g2d.fillRect(0, 0, width, height); int x = 0; int y = height - 7; Paint textPaint = new Color(0, 0, 0); g2d.setPaint(textPaint); g2d.drawString(text, x, y); g2d.dispose(); return bufferedImage; }