I currenly learning Elixir and want to manipulate images with it. I use :egd to calculate sizes of text image that I will render.
My code produces this error:
** (MatchError) no match of right hand side value: []
(egd 0.10.0) c:/expro/image_text/deps/egd/src/egd_font.erl:62: :egd_font.glyph/2
(egd 0.10.0) c:/expro/image_text/deps/egd/src/egd_render.erl:601: :egd_render.text_intervals/5
(egd 0.10.0) c:/expro/image_text/deps/egd/src/egd_render.erl:339: :egd_render.precompile_objects/1
(egd 0.10.0) c:/expro/image_text/deps/egd/src/egd_render.erl:317: :egd_render.precompile/1
(egd 0.10.0) c:/expro/image_text/deps/egd/src/egd_render.erl:39: :egd_render.binary/2
(egd 0.10.0) c:/expro/image_text/deps/egd/src/egd.erl:239: :egd.loop/1
My code:
defmodule ImageText do
@moduledoc """
Documentation for `ImageText`.
"""
def main() do
render_text("hello")
end
def font() do
:egd_font.load("lib/fonts/font.wingsfont")
end
def render_text(text) do
{image_width, image_height} = calculate_text_size(text)
image = :egd.create(image_width, image_height)
:egd.text(image, {0, 0}, font(), String.graphemes(text), :black)
:egd.save(:egd.render(image), "lib/image.png")
:egd.destroy(image)
end
def calculate_text_size(text) do
{font_width, font_height} = :egd_font.size(font())
{font_width * String.length(text), font_height}
end
end
lib/fonts/font.wingsfont.ttf
is https://github.com/erlang/egd/blob/master/priv/fonts/6x11_latin1.wingsfont