ImageUtil.java

/*
 * Copyright (c) 2016 Vivid Solutions.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v20.html
 * and the Eclipse Distribution License is available at
 *
 * http://www.eclipse.org/org/documents/edl-v10.php.
 */

package org.locationtech.jtstest.testbuilder.ui;

import java.awt.Component;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ImageUtil 
{
	public static String IMAGE_FORMAT_NAME_PNG = "png";
	
  public static void saveImageToClipboard(Component comp, String formatName)
  throws IOException
  {
    Image image = new BufferedImage(
    		comp.getSize().width, 
    		comp.getSize().height, 
        BufferedImage.TYPE_4BYTE_ABGR);
    comp.paint(image.getGraphics());
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ImageIO.write((RenderedImage) image, formatName, bos); 
    
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    ClipImage ci = new ClipImage(bos.toByteArray());
    clipboard.setContents(ci, null);
  }
  
  
  public static void writeImage(Component comp, String filename, String formatName)
  throws IOException
  {
    Image image = new BufferedImage(
    		comp.getSize().width, 
    		comp.getSize().height, 
        BufferedImage.TYPE_4BYTE_ABGR);
    comp.paint(image.getGraphics());
    
    ImageIO.write((RenderedImage) image, formatName, 
        new File(filename));
  }


}