[Polycasso-commit] SF.net SVN: polycasso:[161] trunk/polycasso/src/com/mebigfatguy/polycasso/ SVGSa
Brought to you by:
dbrosius
|
From: <dbr...@us...> - 2009-12-08 06:45:00
|
Revision: 161
http://polycasso.svn.sourceforge.net/polycasso/?rev=161&view=rev
Author: dbrosius
Date: 2009-12-08 06:44:51 +0000 (Tue, 08 Dec 2009)
Log Message:
-----------
a first attempt at svg saving
Modified Paths:
--------------
trunk/polycasso/src/com/mebigfatguy/polycasso/SVGSaver.java
Modified: trunk/polycasso/src/com/mebigfatguy/polycasso/SVGSaver.java
===================================================================
--- trunk/polycasso/src/com/mebigfatguy/polycasso/SVGSaver.java 2009-12-07 14:23:35 UTC (rev 160)
+++ trunk/polycasso/src/com/mebigfatguy/polycasso/SVGSaver.java 2009-12-08 06:44:51 UTC (rev 161)
@@ -18,17 +18,71 @@
*/
package com.mebigfatguy.polycasso;
+import java.awt.Color;
import java.awt.Dimension;
+import java.awt.Polygon;
+import java.io.BufferedWriter;
+import java.io.FileWriter;
import java.io.IOException;
+import java.io.PrintWriter;
-import javax.swing.JOptionPane;
+import org.apache.commons.io.IOUtils;
public class SVGSaver implements Saver {
@Override
public void save(String fileName, Dimension imageSize, PolygonData[] data)
throws IOException {
- JOptionPane.showMessageDialog(null, "Not Implemented yet");
+
+ PrintWriter pw = null;
+
+ try {
+ pw = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
+
+ pw.println("<?xml version=\"1.0\" standalone=\"no\"?>");
+ pw.println("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">");
+ pw.println("<svg width=\"" + imageSize.width + "\" height=\"" + imageSize.height + "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">");
+
+ //pw.println("\t<rect width=\"" + imageSize.width + "\" height=\"" + imageSize.height + "\" style=\"fill:#000000;\"/>");
+ for (PolygonData pd : data) {
+
+ Polygon polygon = pd.getPolygon();
+ Color color = pd.getColor();
+ float alpha = pd.getAlpha();
+
+ pw.print("\t<polygon comp-op=\"src-over\" style=\"fill:#");
+ pw.print(toHexColor(color));
+ pw.print("; fill-opacity: ");
+ pw.print(alpha);
+ pw.print(";\" points=\"");
+ String space = "";
+ for (int p = 0; p < polygon.npoints; p++) {
+ pw.print(space);
+ pw.print(polygon.xpoints[p]);
+ pw.print(",");
+ pw.print(polygon.ypoints[p]);
+ space = " ";
+ }
+ pw.println("\"/>");
+
+ }
+ pw.println("<svg>");
+ } finally {
+ IOUtils.closeQuietly(pw);
+ }
}
+
+ private String toHexColor(Color color) {
+ String r = Integer.toHexString(color.getRed());
+ if (r.length() == 1)
+ r = "0" + r;
+ String g = Integer.toHexString(color.getGreen());
+ if (g.length() == 1)
+ g = "0" + g;
+ String b = Integer.toHexString(color.getBlue());
+ if (b.length() == 1)
+ b = "0" + b;
+ return r + g + b;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|