bdf: make it possible to set the drawing colour
Intended for red and black tapes.
This commit is contained in:
parent
8215b59834
commit
9734cdd16e
2
LICENSE
2
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
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted.
|
purpose with or without fee is hereby granted.
|
||||||
|
|
|
@ -66,11 +66,13 @@ func (f *Font) FindGlyph(r rune) (glyph, bool) {
|
||||||
|
|
||||||
// DrawString draws the specified text string onto dst horizontally along
|
// DrawString draws the specified text string onto dst horizontally along
|
||||||
// the baseline starting at dp, using black color.
|
// 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 {
|
for _, r := range s {
|
||||||
g, _ := f.FindGlyph(r)
|
g, _ := f.FindGlyph(r)
|
||||||
draw.DrawMask(dst, g.bounds.Add(dp),
|
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
|
dp.X += g.advance
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"html/template"
|
"html/template"
|
||||||
"image"
|
"image"
|
||||||
|
"image/color"
|
||||||
"image/draw"
|
"image/draw"
|
||||||
"image/png"
|
"image/png"
|
||||||
"log"
|
"log"
|
||||||
|
@ -82,7 +83,7 @@ func main() {
|
||||||
|
|
||||||
img := image.NewRGBA(super)
|
img := image.NewRGBA(super)
|
||||||
draw.Draw(img, super, image.White, image.ZP, draw.Src)
|
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}
|
fonts[filename] = fontItem{Font: font, Preview: img}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"image"
|
"image"
|
||||||
|
"image/color"
|
||||||
"image/draw"
|
"image/draw"
|
||||||
"image/png"
|
"image/png"
|
||||||
"log"
|
"log"
|
||||||
|
@ -26,7 +27,7 @@ func main() {
|
||||||
|
|
||||||
img := image.NewRGBA(super)
|
img := image.NewRGBA(super)
|
||||||
draw.Draw(img, super, image.White, image.ZP, draw.Src)
|
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")
|
fo, err := os.Create("out.png")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"html/template"
|
"html/template"
|
||||||
"image"
|
"image"
|
||||||
|
"image/color"
|
||||||
"image/draw"
|
"image/draw"
|
||||||
"image/png"
|
"image/png"
|
||||||
"log"
|
"log"
|
||||||
|
@ -260,7 +261,7 @@ func main() {
|
||||||
|
|
||||||
img := image.NewRGBA(super)
|
img := image.NewRGBA(super)
|
||||||
draw.Draw(img, super, image.White, image.ZP, draw.Src)
|
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})
|
fonts = append(fonts, &fontItem{Path: path, Font: font, Preview: img})
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package label
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"image"
|
"image"
|
||||||
|
"image/color"
|
||||||
"image/draw"
|
"image/draw"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -19,7 +20,7 @@ func GenLabelForHeight(font *bdf.Font,
|
||||||
textRect, _ := font.BoundString(text)
|
textRect, _ := font.BoundString(text)
|
||||||
textImg := image.NewRGBA(textRect)
|
textImg := image.NewRGBA(textRect)
|
||||||
draw.Draw(textImg, textRect, image.White, image.ZP, draw.Src)
|
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}
|
scaledTextImg := imgutil.Scale{Image: textImg, Scale: scale}
|
||||||
scaledTextRect := scaledTextImg.Bounds()
|
scaledTextRect := scaledTextImg.Bounds()
|
||||||
|
@ -93,7 +94,7 @@ func GenLabelForWidth(font *bdf.Font,
|
||||||
for i, line := range lines {
|
for i, line := range lines {
|
||||||
textImg := image.NewRGBA(rects[i])
|
textImg := image.NewRGBA(rects[i])
|
||||||
draw.Draw(textImg, rects[i], image.White, image.ZP, draw.Src)
|
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}
|
scaledImg := imgutil.Scale{Image: textImg, Scale: scale}
|
||||||
scaledRect := scaledImg.Bounds()
|
scaledRect := scaledImg.Bounds()
|
||||||
|
|
Loading…
Reference in New Issue