aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/llgcode/draw2d/samples/postscript/postscript.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/llgcode/draw2d/samples/postscript/postscript.go')
-rw-r--r--vendor/github.com/llgcode/draw2d/samples/postscript/postscript.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/vendor/github.com/llgcode/draw2d/samples/postscript/postscript.go b/vendor/github.com/llgcode/draw2d/samples/postscript/postscript.go
new file mode 100644
index 0000000..f1d88c1
--- /dev/null
+++ b/vendor/github.com/llgcode/draw2d/samples/postscript/postscript.go
@@ -0,0 +1,49 @@
+// Package postscript reads the tiger.ps file and draws it to a backend.
+package postscript
+
+import (
+ "io/ioutil"
+ "os"
+ "strings"
+
+ "github.com/llgcode/ps"
+
+ "github.com/llgcode/draw2d"
+ "github.com/llgcode/draw2d/samples"
+)
+
+// Main draws the tiger
+func Main(gc draw2d.GraphicContext, ext string) (string, error) {
+ gc.Save()
+
+ // flip the image
+ gc.Translate(0, 200)
+ gc.Scale(0.35, -0.35)
+ gc.Translate(70, -200)
+
+ // Tiger postscript drawing
+ tiger := samples.Resource("image", "tiger.ps", ext)
+
+ // Draw tiger
+ Draw(gc, tiger)
+ gc.Restore()
+
+ // Return the output filename
+ return samples.Output("postscript", ext), nil
+}
+
+// Draw a tiger
+func Draw(gc draw2d.GraphicContext, filename string) {
+ // Open the postscript
+ src, err := os.OpenFile(filename, 0, 0)
+ if err != nil {
+ panic(err)
+ }
+ defer src.Close()
+ bytes, err := ioutil.ReadAll(src)
+ reader := strings.NewReader(string(bytes))
+
+ // Initialize and interpret the postscript
+ interpreter := ps.NewInterpreter(gc)
+ interpreter.Execute(reader)
+}