i want to save my prefuse visualization graph as jpeg image,plz help me with java code,how will i do it.
How do you save a prefuse visualization graph as jpeg image?
Collapse
X
-
Originally posted by sriniwasi want to save my prefuse visualization graph as jpeg image,plz help me with java code,how will i do it.
[CODE=Java]boolean success = ImageIO.write(b ufferedImage, "jpeg", file);[/CODE] -
Originally posted by BigDaddyLHTake a look at the javax.imageio packages. It can be as simple as one line of code, if you have a BufferedImage:
[CODE=Java]boolean success = ImageIO.write(b ufferedImage, "jpeg", file);[/CODE]
Hi Frnd,
m using prefuse visulation,it's have one display class and this class have one saveImage(outPu tStream, String jpg,double size);. now graph is converting ia jpg image properly.now my problem is tht,If graph is to large if it going out of screen thn ,i m getting jpg image on screen disply graph,m not getting the image of tht graph which going out of screen. this is my code
d = new Display(visuali zation);
fileOutPutStrea m=new FileOutputStrea m("c:/sri/img.jpg");
d.saveImage(fil eOutPutStream," jpg",2.6);
plz if u can do some help me, tht plz do it
it's very important for me.Comment
-
Hi Frnd's,
m using prefuse visulation,it's have one display class and this class have one saveImage(outPu tStream, String jpg,double size);. now graph is converting ia jpg image properly.now my problem is tht,If graph is to large if it going out of screen thn ,i m getting jpg image on screen disply graph,m not getting the image of tht graph which going out of screen. this is my code
This is my code
import com.sun.corba.s e.impl.orbutil. graph.Node;
import java.awt.Border Layout;
import java.awt.Dimens ion;
import java.awt.Point;
import java.awt.dnd.Dr agSource;
import java.awt.event. ActionEvent;
import java.awt.event. ActionListener;
import java.awt.event. ItemEvent;
import java.awt.event. MouseAdapter;
import java.awt.event. MouseEvent;
import java.awt.event. MouseListener;
import java.awt.event. WindowAdapter;
import java.awt.event. WindowEvent;
import java.awt.event. WindowListener;
import java.awt.image. BufferedImage;
import java.io.File;
import java.io.FileOut putStream;
import java.io.IOExcep tion;
import java.io.OutputS tream;
import java.util.Itera tor;
import javax.crypto.Nu llCipher;
import javax.swing.JBu tton;
import javax.swing.JFr ame;
import javax.swing.JOp tionPane;
import javax.swing.bor der.Border;
import prefuse.Constan ts;
import prefuse.Display ;
import prefuse.Visuali zation;
import prefuse.action. Action;
import prefuse.action. ActionList;
import prefuse.action. RepaintAction;
import prefuse.action. assignment.Colo rAction;
import prefuse.action. assignment.Data ColorAction;
import prefuse.action. layout.graph.Fo rceDirectedLayo ut;
import prefuse.activit y.Activity;
import prefuse.activit y.ActivityAdapt er;
import prefuse.activit y.ActivityListe ner;
import prefuse.control s.DragControl;
import prefuse.control s.PanControl;
import prefuse.control s.ToolTipContro l;
import prefuse.control s.ZoomControl;
import prefuse.control s.FocusControl;
import prefuse.control s.DragControl;
import prefuse.data.Gr aph;
import prefuse.data.Ta ble;
import prefuse.data.Tu ple;
import prefuse.data.io .DataIOExceptio n;
import prefuse.data.io .GraphMLReader;
import prefuse.data.io .GraphWriter;
import prefuse.data.tu ple.TupleSet;
import prefuse.render. DefaultRenderer Factory;
import prefuse.render. LabelRenderer;
import prefuse.render. ShapeRenderer;
import prefuse.util.Co lorLib;
import prefuse.util.fo rce.DragForce;
import prefuse.visual. NodeItem;
import prefuse.visual. VisualItem;
import javax.swing.*;
import java.awt.Contai ner;
import java.io.FileInp utStream;
import java.awt.Canvas ;
import java.awt.event. WindowAdapter;
import java.awt.event. WindowListener;
import java.awt.Image;
import java.util.Set;
class DrawGrahp extends JFrame{
private FileOutputStrea m fileOutPutStrea m=null;
private JButton button;
private JFrame frame;
private Visualization vis;
private LabelRenderer r;
private ActionList layout;
private ActionList color;
private Display d ;
private int a,b;
private Graph graph = null;
private JPanel jpanel;
public DrawGrahp(){
jpanel=new JPanel();
button=new JButton("Save") ;
Container con= getContentPane( );
jpanel.setLayou t(null);
button.setBound s(200,300,70,40 );
con.setSize(500 ,600);
jpanel.setSize( 1000,800);
final int l= jpanel.getHeigh t();
final int m=jpanel.getWid th();
Canvas canvas=new Canvas();
jpanel.add(butt on);
con.setVisible( true);
jpanel.setDoubl eBuffered(true) ;
jpanel.setPrefe rredSize(new Dimension(500,6 00));
Point location=new Point();
System.out.prin tln("Panel Size"+ jpanel.getSize( ));
System.out.prin tln("panel height----------"+jpanel.getHei ght()+"Panel width-------------"+jpanel.getWid th());
con.add(jpanel, BorderLayout.NO RTH);
try {
graph = new GraphMLReader() .readGraph("\\J avaApplicationS wing\\graph.xml ");
} catch (DataIOExceptio n e ) {
e.printStackTra ce();
System.err.prin tln("Error loading graph. Exiting...");
System.exit(1);
}
// nodes and edges are accessible as "graph.node s" and "graph.edge s"
vis = new Visualization() ;
vis.add("graph" , graph);
vis.setInteract ive("graph.edge s", null, false);
// -- 3. the renderers and renderer factory ---------------------------
r = new LabelRenderer(" name");
r.setRoundedCor ner(8, 8); // round the corners
ShapeRenderer sh=new ShapeRenderer() ;
sh.star(2,3,4);
sh.setBaseSize( 4);
// return our name label renderer as the default for all non-EdgeItems
// includes straight line edges for EdgeItems by default
vis.setRenderer Factory(new DefaultRenderer Factory(r));
d = new Display(vis);
// -- 4. the processing actions ---------------------------------------
int[] palette = new int[] {
ColorLib.rgb(25 5,180,180), ColorLib.rgb(19 0,190,255)
};
// map nominal data values to colors using our provided palette
DataColorAction fill = new DataColorAction ("graph.node s", "gender",
Constants.NOMIN AL, VisualItem.FILL COLOR, palette);
ColorAction text = new ColorAction("gr aph.nodes",
VisualItem.TEXT COLOR, ColorLib.gray(0 ));
if(text.equals( "sriniwas") )
{
new ColorAction("gr aph.nodes",Visu alItem.TEXTCOLO R, ColorLib.green( 240));
}
ColorAction edges = new ColorAction("gr aph.edges",
VisualItem.STRO KECOLOR, ColorLib.gray(2 00));
color = new ActionList();
color.add(fill) ;
color.add(text) ;
color.add(edges );
int aa;
for(int i=0;i<color.siz e();i++){
System.out.prin tln("sdhfshdfhs f" +i);
}
layout = new ActionList(Acti vity.INFINITY);
layout.add(new ForceDirectedLa yout("graph"));
layout.add(new RepaintAction() );
vis.putAction(" color", color);
vis.putAction(" layout", layout);
// -- 5. the display and interactive controls -------------------------
d = new Display(vis);
// d.setSize(1000, 600); // set display size
d.addControlLis tener(new DragControl());
d.addControlLis tener(new PanControl());
d.addControlLis tener(new ZoomControl());
d.addControlLis tener(new FrameFocusContr ol());
// d.addControlLis tener(new ToolTipControl( ){
//d.addControlLis tener(new DragSource());
// -- 6. launch the visualization -------------------------------------
jpanel.add(d);
vis.run("color" );
vis.run("layout ");
button.addActio nListener(new ActionListener( ){
public void actionPerformed (ActionEvent e){
if(e.getSource( )==button){
try{
jpanel.setSize( new Dimension(l*10, m*10));
System.out.prin tln("Panel Hieght"+jpanel. getHeight());
System.out.prin tln("Panel width"+jpanel.g etWidth());
Image img =d.getOffscreen Buffer();
img.getSource() ;
System.out.prin tln("A fter increase Panel Size"+ jpanel.getSize( ));
fileOutPutStrea m=new FileOutputStrea m("c:/sri/img.jpg");
d.saveImage(fil eOutPutStream," jpg",2.6);
fileOutPutStrea m.flush();
fileOutPutStrea m.close();
System.out.prin tln("------------------"+jpanel.getHei ght());
}catch(IOExcept ion ex){ex.printSta ckTrace();}
}
}
});
}
}
public class DrawGrahpDemo{
public static void main(String Arg[]){
DrawGrahp drawGraph=new DrawGrahp();
drawGraph.setVi sible(true);
drawGraph.setSi ze(500,600);
drawGraph.setDe faultCloseOpera tion(JFrame.EXI T_ON_CLOSE);
}
}
it's very importtant for me, plz help me.Comment
Comment