Warning.. very basic.. More of an experiment.. Concatenates characters from pre-rendered lookup images, then resizes and colors. 100% julia, no libs. Gets blurry if font height is greater than ~90 pixels.
Provides rendertext
for generating a rendered image of a string and
overlaytext!
for directly overlaying text on a loaded image.
Currently built to support truly monospaced fonts only, and Courier is the only font that is provided.
(other open source licensed fonts welcome via PR, see gen/makeCharLookups.jl
)
> using BasicTextRender
> img = rendertext("Hello world", height=50)
50×316 Array{RGBA{Float64},2} with eltype RGBA{Float64}:
...
> using FileIO
> save("img.png", img)
using BasicTextRender, ColorTypes
img = rendertext("Hello world", height=30, color=RGBA(1.0,0.0,0.0,1.0), backgroundColor=RGBA(1.0,1.0,0.0,1.0))
img = rand(RGBA{Float64},80,700)
overlaytext!(img, "BasicTextRender.jl", 60, (10,40))
save("logo.png", img)
The first time rendertext
runs it should take about 5 seconds, as it loads the
character lookup table, but subsequent calls for the same scale and font will be fast.
using BenchmarkTools
@btime rendertext("Hello world", height=30) #599.991 μs (352 allocations: 2.28 MiB)