aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2021-06-09 23:16:50 +0200
committerPřemysl Eric Janouch <p@janouch.name>2021-06-09 23:18:06 +0200
commit9734cdd16e1b7572464dfaed3bd03a70db46a3d3 (patch)
tree470162274d9ef41184440ac40268b55c4550b118
parent8215b59834d8a02cb43d34c55d9604dda7749cfd (diff)
downloadsklad-9734cdd16e1b7572464dfaed3bd03a70db46a3d3.tar.gz
sklad-9734cdd16e1b7572464dfaed3bd03a70db46a3d3.tar.xz
sklad-9734cdd16e1b7572464dfaed3bd03a70db46a3d3.zip
bdf: make it possible to set the drawing colour
Intended for red and black tapes.
-rw-r--r--LICENSE2
-rw-r--r--bdf/bdf.go6
-rw-r--r--cmd/bdf-preview/main.go3
-rw-r--r--cmd/bdf-sample/main.go3
-rw-r--r--cmd/label-tool/main.go3
-rw-r--r--label/label.go5
6 files changed, 14 insertions, 8 deletions
diff --git a/LICENSE b/LICENSE
index 9021032..d12dc09 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2019, Přemysl Eric Janouch <p@janouch.name>
+Copyright (c) 2019 - 2021, Přemysl Eric Janouch <p@janouch.name>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
diff --git a/bdf/bdf.go b/bdf/bdf.go
index 5ff8f30..2d94b6c 100644
--- a/bdf/bdf.go
+++ b/bdf/bdf.go
@@ -66,11 +66,13 @@ func (f *Font) FindGlyph(r rune) (glyph, bool) {
// DrawString draws the specified text string onto dst horizontally along
// the baseline starting at dp, using black color.
-func (f *Font) DrawString(dst draw.Image, dp image.Point, s string) {
+func (f *Font) DrawString(dst draw.Image, dp image.Point,
+ color color.Color, s string) {
+ src := image.NewUniform(color)
for _, r := range s {
g, _ := f.FindGlyph(r)
draw.DrawMask(dst, g.bounds.Add(dp),
- image.Black, image.ZP, &g, g.bounds.Min, draw.Over)
+ src, image.ZP, &g, g.bounds.Min, draw.Over)
dp.X += g.advance
}
}
diff --git a/cmd/bdf-preview/main.go b/cmd/bdf-preview/main.go
index c2edf5c..3632264 100644
--- a/cmd/bdf-preview/main.go
+++ b/cmd/bdf-preview/main.go
@@ -3,6 +3,7 @@ package main
import (
"html/template"
"image"
+ "image/color"
"image/draw"
"image/png"
"log"
@@ -82,7 +83,7 @@ func main() {
img := image.NewRGBA(super)
draw.Draw(img, super, image.White, image.ZP, draw.Src)
- font.DrawString(img, image.ZP, font.Name)
+ font.DrawString(img, image.ZP, color.Black, font.Name)
fonts[filename] = fontItem{Font: font, Preview: img}
}
diff --git a/cmd/bdf-sample/main.go b/cmd/bdf-sample/main.go
index 1850118..e8a2b94 100644
--- a/cmd/bdf-sample/main.go
+++ b/cmd/bdf-sample/main.go
@@ -2,6 +2,7 @@ package main
import (
"image"
+ "image/color"
"image/draw"
"image/png"
"log"
@@ -26,7 +27,7 @@ func main() {
img := image.NewRGBA(super)
draw.Draw(img, super, image.White, image.ZP, draw.Src)
- font.DrawString(img, image.ZP, font.Name)
+ font.DrawString(img, image.ZP, color.Black, font.Name)
fo, err := os.Create("out.png")
if err != nil {
diff --git a/cmd/label-tool/main.go b/cmd/label-tool/main.go
index d2ac4f9..893aa13 100644
--- a/cmd/label-tool/main.go
+++ b/cmd/label-tool/main.go
@@ -4,6 +4,7 @@ import (
"errors"
"html/template"
"image"
+ "image/color"
"image/draw"
"image/png"
"log"
@@ -260,7 +261,7 @@ func main() {
img := image.NewRGBA(super)
draw.Draw(img, super, image.White, image.ZP, draw.Src)
- font.DrawString(img, image.ZP, font.Name)
+ font.DrawString(img, image.ZP, color.Black, font.Name)
fonts = append(fonts, &fontItem{Path: path, Font: font, Preview: img})
}
diff --git a/label/label.go b/label/label.go
index 63c600e..7e4b34f 100644
--- a/label/label.go
+++ b/label/label.go
@@ -2,6 +2,7 @@ package label
import (
"image"
+ "image/color"
"image/draw"
"strings"
@@ -19,7 +20,7 @@ func GenLabelForHeight(font *bdf.Font,
textRect, _ := font.BoundString(text)
textImg := image.NewRGBA(textRect)
draw.Draw(textImg, textRect, image.White, image.ZP, draw.Src)
- font.DrawString(textImg, image.ZP, text)
+ font.DrawString(textImg, image.ZP, color.Black, text)
scaledTextImg := imgutil.Scale{Image: textImg, Scale: scale}
scaledTextRect := scaledTextImg.Bounds()
@@ -93,7 +94,7 @@ func GenLabelForWidth(font *bdf.Font,
for i, line := range lines {
textImg := image.NewRGBA(rects[i])
draw.Draw(textImg, rects[i], image.White, image.ZP, draw.Src)
- font.DrawString(textImg, image.ZP, line)
+ font.DrawString(textImg, image.ZP, color.Black, line)
scaledImg := imgutil.Scale{Image: textImg, Scale: scale}
scaledRect := scaledImg.Bounds()