From 9734cdd16e1b7572464dfaed3bd03a70db46a3d3 Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch Date: Wed, 9 Jun 2021 23:16:50 +0200 Subject: bdf: make it possible to set the drawing colour Intended for red and black tapes. --- LICENSE | 2 +- bdf/bdf.go | 6 ++++-- cmd/bdf-preview/main.go | 3 ++- cmd/bdf-sample/main.go | 3 ++- cmd/label-tool/main.go | 3 ++- label/label.go | 5 +++-- 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 +Copyright (c) 2019 - 2021, Přemysl Eric Janouch 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() -- cgit v1.2.3-70-g09d2