// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea
// Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com
// Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology
// Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/
package graphtea.plugins.main.saveload.image;
import graphtea.graph.graph.AbstractGraphRenderer;
import graphtea.graph.graph.GraphModel;
import graphtea.platform.core.exception.ExceptionHandler;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
/**
* @author Azin Azadi
*/
public class Image {
static boolean debug = false;
public static BufferedImage Graph2Image(AbstractGraphRenderer gv, GraphModel gm) {
//Rectangle r = gm.getZoomedBounds().getBounds();
Rectangle r = gv.getBounds();
if (debug) System.out.println("start");
//todo: the following line is depended on graph view to be a swing component
BufferedImage bi = gv.getGraphicsConfiguration().createCompatibleImage(r.width, r.height);
if (debug) System.out.println("bi created");
Graphics2D gr = bi.createGraphics();
gr.translate(-r.x, -r.y);
// if (gv.getMiny() < 0)
gr.translate(gv.getMinx(), gv.getMiny());
gv.paint(gr);
if (debug) System.out.println("bi painted");
gr.translate(r.x, r.y);
return bi;
}
public static void save(RenderedImage image, File ff, String extension) {
try {
if (debug) System.out.println("writing started");
ImageIO.write(image, extension, ff);
if (debug) System.out.println("writing finished");
} catch (IOException e) {
ExceptionHandler.catchException(e); //To change body of catch statement use File | Settings | File Templates.
}
// fc.setTitle("SaveImage dijkstra.Image As ...");
// fc.sa
}
}