Когда мы хотим отрендерить текст как изображение vips, вы делаете что-то подобное с vips_text:
import "C"
var textImage *C.VipsImage
cText := C.CString("Some text")
cFont := C.CString("Arial 12px")
C.cgo_vips_text(&textImage, cText, cFont)
Но здесь Arial 12px
является строковым именем fontconfig и предполагает, что в системе установлен этот шрифт.
Как разрешить программе использовать пользовательский файл шрифта truetype, например, Roboto.ttf
?
Пытающийся
cFont := C.CString("Roboto.ttf")
наверное не получится.
Мы могли бы поместить файл Roboto.ttf
в системный каталог, например, в Ubuntu вы помещаете файл в /usr/share/fonts/truetype
, но код делает предположение, что этот шрифт существует, что не является решением для написания машинно-независимой программы. Поэтому мне интересно, есть ли лучший способ сделать это, чтобы мы могли отправлять исполняемые файлы вместе с файлом шрифта.