System.put_env("SKIA_EX_BUILD", "1") Mix.install([ {:rustler, "~> 0.38.0", runtime: false}, {:rustq, "~> 0.5", runtime: false}, {:skia, path: Path.expand("..", __DIR__)} ]) {:ok, families} = Skia.Typeface.families() families = Enum.take(families, 8) IO.inspect(families, label: "families") family = Enum.find(families, &String.contains?(&1, "Sans")) || List.first(families) || "DejaVu Sans" {:ok, typeface} = Skia.Typeface.match_family(family, weight: 700) {:ok, info} = Skia.Typeface.info(typeface) font = Skia.Font.new(typeface, size: 28) {:ok, metrics} = Skia.Font.metrics(font) {:ok, glyphs} = Skia.Font.glyph_ids(font, "Typeface") IO.inspect(info, label: "typeface") IO.inspect(metrics, label: "metrics") IO.inspect(glyphs, label: "glyph ids") doc = Skia.canvas(280, 100) |> Skia.clear("#111827") |> Skia.text("Typeface", x: 24, y: 58, font: font, fill: "#f8fafc") {:ok, png} = Skia.to_png(doc) File.write!("typefaces.png", png)