Обеспечивает предварительно эксплуатизированные символы из шрифта «Noto Sans Mono» в разных размерах и весах шрифтов для нескольких диапазонов Unicode. Этот ящик является no_std и не нуждается в распределении или операциях с плавающей запятой. Полезно в ядрах и загрузчиках, когда доступно только «мягкий рывок». Строго говоря, этот ящик является более чем основным шрифтом растрового изображения, потому что он кодирует каждый пиксель как байт, а не как немного, что приводит к гораздо более приятным результатам на экране.
no_std , ноль распределения, без операций с плавающей запятой
Пожалуйста, проверьте Anplosing.md.
Наследие (8x8) шрифты растрового изображения обычно относятся к шрифту, где каждый символ кодируется в 8 битах. Те, кто в байте ( 0b00110000 ) означает «Pixel ON», а нули означает «пиксель». Тем не менее, мой шрифт фактически кодирует интенсивность каждого пикселя как байт от 0 до 255. Следовательно, это менее эффективно размер, чем унаследованные шрифты растрового карты, но выглядит намного лучше. Я все еще использую термин растровый шрифт, потому что этот термин используется и известен при разговоре о предварительном разрыве шрифтов/шрифтов в контексте низкого уровня, таких как процесс загрузки.
Если вы хотите распечатать на рамный буфер и если вы разработаете загрузчик или ядро, вы обычно не хотите включать FPU и воздерживаться от инструкции по плавающей запятой (то есть используйте только Soft Float). Мой ящик - хороший вариант для красивой печати символов на экране в таких сценариях. В качестве хорошего живого шрифта визуализация TTF шрифтов в значительной степени зависит от многих операций с плавающей запятой, что не является оптимальным внутри бинарного низкого уровня. Законечные шрифты 8x8 растрового цвета уродливы при печати на экране. noto_sans_mono_bitmap можно рассматривать как хорошую замену с очень хорошими анти-альцами.
Если у вас есть стандартная среда или поддержка операций с плавающей запятой, вы можете самостоятельно растиливать шрифт с помощью ящика fontdue и некоторых шрифтов TTF, а не использовать мой ящик.
use noto_sans_mono_bitmap :: { get_raster , get_raster_width , FontWeight , RasterHeight } ;
// Minimal example.
fn main ( ) {
let width = get_raster_width ( FontWeight :: Regular , RasterHeight :: Size16 ) ;
println ! (
"Each char of the mono-spaced font will be {}px in width if the font
weight={:?} and the bitmap height={}" ,
width ,
FontWeight :: Regular ,
RasterHeight :: Size16 . val ( )
) ;
let char_raster =
get_raster ( 'A' , FontWeight :: Regular , RasterHeight :: Size16 ) . expect ( "unsupported char" ) ;
println ! ( "{:?}" , char_raster ) ;
for ( row_i , row ) in char_raster . raster ( ) . iter ( ) . enumerate ( ) {
for ( col_i , pixel ) in row . iter ( ) . enumerate ( ) {
println ! ( "[{:02}][{:02}]: {:03}" , row_i , col_i , pixel ) ;
}
}
} external/check-size дает вам понимание накладных расходов на то, чтобы эта библиотека статически была составлена в двоичный файл.
По умолчанию включено только разумное подмножество возможных функций. Размер необработанного ящика составляет несколько Mib в размере, но после компиляции и отбрасывания нерелевантных частей (то есть размер 14, обычный шрифт, только ASCII), накладные расходы должны быть менее 120 км в двоичном размере, согласно моим измерениям. Однако даже с функцией all , в зависимости от вашего кода, компилятор может надежно отказаться от недоступных или неиспользованных путей кода. Тем не менее, рекомендуется включать не больше функций, чем необходимо.
Со всеми функциями, включенными внутри двоичного файла, и без какого -либо отброса компилятора, вы можете ожидать 5 или более MIB потребления памяти. Тем не менее, это потребует довольно маловероятного случая, в котором вы используете разные размеры и веса шрифтов одновременно и все диапазоны Unicode.
$ cargo run --example show_chars_in_window
Если вы хотите использовать специальные Chars, такие как {ä, ö, ü, �} , в примере вы можете использовать
$ cargo run --example show_chars_in_window --features all
� слева и вправо. :Ратеризация была сделана с удивительным фондю-ящиком. Спасибо первоначальному автору (ы)!
См. Файл лицензии в репозитории.
Ржавчина стабильная 1.56.1.