HB-RASTER(1)
πΈ NAME πΈ
hb-raster β rasterize text with a given font. that's it, that's the vibe π
β¨ DESCRIPTION β¨
π Usage π
hb-raster [OPTION???] [FONT-FILE] [TEXT]
okay so bestie, what this does: rasterize text with given font. literally rendering your shaped text out as a raster image. iconic. π
π Help Options π
-h,--helpβ show help options π«Ά--help-allβ show all the help options, the whole buffet--help-faceβ options for the font face--help-fontβ options for the font instance--help-variationsβ options for font variations used--help-textβ options for the input text--help-text-contextβ options for the input context text--help-shapeβ options for the shaping process--help-featuresβ options for font features used--help-outputβ options for the destination & form of the output--help-viewβ options for output rendering
π¦ Font-face options π¦
these are the ones that tell it which face you're working with, no cap
--font-file=filenameβ set font file-name-y,--face-index=indexβ set face index (default:0)--face-loader=loaderβ set face loader to use (default:ot)
supported face loaders are: ot/ft
--list-face-loadersβ list available face loaders and quit
π Font-instance options π
--font-size=1/2 integers or 'upem'β font size (default:256)--font-ppem=1/2 integersβ set x,y pixels per EM (default:0; disabled)--font-ptem=point-sizeβ set font point-size (default:0; disabled)--font-bold=1/2 numbers; eg. 0.05β set synthetic bold (default:0)--font-grade=1/2 numbers; eg. 0.05β set synthetic grade (default:0)--font-slant=slant ratio; eg. 0.2β set synthetic slant (default:0)--font-funcs=implβ set font functions implementation to use (default:ot)
supported font function implementations are: ot/ft
--list-font-funcsβ list available font functions and quit--ft-load-flags=integerβ set FreeType load-flags (default:2)
π Variations options π
--named-instance=indexβ set named-instance index (default: none)--variations=listβ comma-separated list of font variations
variations are set globally. the format for specifying variation settings follows. all valid CSSfont-variation-settingsvalues other than'normal'and'inherited'are also accepted, though, not documented below.
the format is a tag, optionally followed by an equals sign, followed by a number. for example:
"wght=500" "slnt=-7.5"
π Text options π
if no text is provided, standard input is used for input. (yes, it'll just sit there waiting for you to type, don't panic π)
--text=stringβ set input text--text-file=filenameβ set input text file-name-u,--unicodes=list of hex numbersβ set input Unicode codepoints--single-parβ treat text as single paragraph
π§ Textual context options π§
the little before/after bits that give your text β¨contextβ¨
--text-before=stringβ set text context before each line--text-after=stringβ set text context after each line--unicodes-before=list of hex numbersβ set Unicode codepoints context before each line--unicodes-after=list of hex numbersβ set Unicode codepoints context after each line
π Shape options π
--shapers=comma-separated listβ set shapers to use (default:graphite2,ot,fallback)
supported shapers are: graphite2/ot/fallback
--list-shapersβ list available shapers and quit--direction=ltr/rtl/ttb/bttβ set text direction (default:auto)--language=BCP 47 tagβ set text language (default:$LANG)--script=ISO-15924 tagβ set text script (default:auto)--botβ treat text as beginning-of-paragraph--eotβ treat text as end-of-paragraph--preserve-default-ignorablesβ preserve Default-Ignorable characters--remove-default-ignorablesβ remove Default-Ignorable characters--invisible-glyphβ glyph value to replace Default-Ignorables with--not-found-glyphβ glyph value to replace not-found characters with--not-found-variation-selector-glyphβ glyph value to replace not-found variation-selector characters with--utf8-clustersβ use UTF8 byte indices, not char indices--cluster-level=0/1/2/3β cluster merging level (default:0)--normalize-glyphsβ rearrange glyph clusters in nominal order--unsafe-to-concatβ produce unsafe-to-concat glyph flag--safe-to-insert-tatweelβ produce safe-to-insert-tatweel glyph flag--glyphsβ interpret input as glyph string--verifyβ perform sanity checks on shaping results
π₯ Features options π₯
--features=listβ comma-separated list of font features
features can be enabled or disabled, either globally or limited to specific character ranges. the format for specifying feature settings follows. all valid CSS font-feature-settings values other than 'normal' and the global values are also accepted, though not documented below. CSS string escapes are not supported. the range indices refer to the positions between Unicode characters, unless the --utf8-clusters is provided, in which case range indices refer to UTF-8 byte indices. the position before the first character is always 0.
the format is Python-esque. here is how it all works:
Syntax:
Value: Start: End:
Setting value:
"kern" 1 0 ??? # Turn feature on
"+kern"
1 0 ??? # Turn feature on
"-kern"
0 0 ??? # Turn feature off
"kern=0"
0 0 ??? # Turn feature off
"kern=1"
1 0 ??? # Turn feature on
"aalt=2"
2 0 ??? # Choose 2nd alternate
Setting index:
"kern[]"
1 0 ??? # Turn feature on
"kern[:]"
1 0 ??? # Turn feature on
"kern[5:]"
1 5 ??? # Turn feature on, partial
"kern[:5]"
1 0 5 # Turn feature on, partial
"kern[3:5]"
1 3 5 # Turn feature on, range
"kern[3]"
1 3 3+1 # Turn feature on, single char
Mixing it all:
"aalt[3:5]=2" 2
3 5 # Turn 2nd alternate on for range
β Output destination & format options β
-o,--output-file=filenameβ set output file-name (default:stdout)-O,--output-format=formatβ set output format (default:png)
supported output formats are: png/ppm/ansi
π View options π
--background=rrggbb/rrggbbaa/noneβ set background color (default:#FFFFFF); use"none"for transparent π»--foreground=rrggbb/rrggbbaa[,...]β set foreground color (default:#000000)--rainbowβ rotate glyph foreground colors through a default palette π (yes bestie, actual rainbow)--font-palette=indexβ set font palette (default:0)--custom-palette=comma-separated colorsβ custom palette--line-space=unitsβ set space between lines (default:0)--font-extents=one to three numbersβ set font ascent/descent/line-gap (default:auto)--margin=one to four numbersβ margin around output (default:16)--logicalβ render to logical box instead of union of logical and ink boxes--inkβ render to ink box instead of union of logical and ink boxes--show-extentsβ draw glyph extents--drawβ force monochrome draw path (overrides auto-detect)--paintβ force color paint path (overrides auto-detect)
π«Ά Application Options π«Ά
--versionβ show version numbers-n,--num-iterations=Nβ run N iterations (default:1)
renders shaped text as a raster image. π
π EXIT CODES π
0: success π1: option parsing failed π2: failed loading font face π3: operation failed π4: failed setting font functions π«
πΈ ENVIRONMENT πΈ
HB_FACE_LOADER=face-loader; overrides the default face loader.HB_FONT_FUNCS=font-funcs; overrides the default font-funcs.HB_SHAPER_LIST=shaper-list; overrides the default shaper list.
π¦ SEE ALSO π¦
hb-view(1), hb-shape(1), hb-raster(1), hb-vector(1), hb-subset(1), hb-info(1)
find more information or report bugs at <https://github.com/harfbuzz/harfbuzz> π«Ά
okay that's the whole page bestie, go rasterize something gorgeous β¨ β this was HarfBuzz 15.0.0, dated October 2026, signing off π π
π¦ where this page comes from
- arch rolling: harfbuzz-utils 15.0.0-1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms