1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// fontcompare: compare two fonts
package main
import (
"fmt"
"os"
"github.com/ajstarks/svgo"
)
var (
canvas = svg.New(os.Stdout)
width = 1000
height = 600
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789(){}[],.:;-+*/\\&_^%$#@!~`'\"<>"
gstyle = "font-family:%s;font-size:%dpt;text-anchor:middle;fill:%s;fill-opacity:%.2f"
)
func letters(top, left int, font, color string, opacity float32) {
rows := 7
cols := 13
glyph := 0
fontsize := 32
spacing := fontsize * 2
x := left
y := top
canvas.Gstyle(fmt.Sprintf(gstyle, font, fontsize, color, opacity))
for r := 0; r < rows; r++ {
for c := 0; c < cols; c++ {
canvas.Text(x, y, chars[glyph:glyph+1])
glyph++
x += spacing
}
x = left
y += spacing
}
canvas.Gend()
}
func main() {
if len(os.Args) > 2 {
canvas.Start(width, height)
canvas.Rect(0, 0, width, height, "fill:white")
canvas.Text(80, 540, os.Args[1], "font-size:14pt; fill:blue; font-family:"+os.Args[1])
canvas.Text(80, 560, os.Args[2], "font-size:14pt; fill:red; font-family:"+os.Args[2])
letters(100, 100, os.Args[1], "blue", 0.5)
letters(100, 100, os.Args[2], "red", 0.5)
canvas.End()
}
}
|