Создание битмаповых шрифтов

Pixilang по русски
Post Reply
User avatar
NightRadio
Site Admin
Posts: 3118
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Создание битмаповых шрифтов

Post by NightRadio » Mon Jan 14, 2008 9:22 am

По поводу конвертации векторных шрифтов в картинку. Нашел две программы, которые делают что-то подобное. Возможно, окажутся полезными. Правда сам еще не разбирался.
Вот ссылки:
http://www.angelcode.com/products/bmfont/
http://www.lmnopc.com/bitmapfontbuilder/

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Создание битмаповых шрифтов

Post by Al_Rado » Mon Jan 14, 2008 2:18 pm

Bitmap Font Builder прекрасно работает и бесплатна для некоммерческого использования! Все просто: выбираешь фонт, он отображается в сетке 16х16 клеток, сохраняешь картинкой. Цвета, размер, сглаживание - все это выбирается в главном окне. Осталось набросать маленькую программку на Пикси, которая будет переводить картинку в фонт.
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Создание битмаповых шрифтов

Post by Al_Rado » Tue Jan 15, 2008 2:20 pm

Итак, сохраняем картинку .bmp из программы Bitmap Font Builder нужного размера (сетку отображать не надо). Загружаем в редактор растровой графики и сохраняем как .gif Далее вписываем имя полученного файла в нижеприведенную программку:

//Al_Rado// Перевод растровых шрифтов полученных из программы "Bitmap Font Builder" в шрифты, пригодные для использования в Pixilang.
scr = load_pixi( "512.gif" ) // Загружаем картинку 128х128, 256х256, 512х512, 1024х1024 или 2048х2048
xsize_scr = get_pixi_xsize( scr )
ysize_scr = get_pixi_ysize( scr )
xsize_font = xsize_scr/16
ysize_font = ysize_scr/16
font = new_pixi( xsize_font, ysize_font, 256 )
f=0
z=0
m=0 while ( m<16 ) {
n=0 while ( n<16 ) {
y=0 while (y<ysize_font) {
x=0 while (x<xsize_font) {
font[z] = scr[ x+(xsize_scr*y)+(xsize_font*n)+(xsize_scr*ysize_font*m) ]
x+1
z+1
}
y+1
}
n+1
}
m+1
}

video_export_gif( "font.gif" ) // Имя файла для использования в Pixilang в качестве фонта
aa:
set_screen( font, f )
frame(0)
f + 1
if f < 256 { go aa }
/////////////////////////////

Теперь нужно загрузить полученную gif-ку в растровый редактор графики (например Gimp) и сохранить ее указав прозрачным цвет фона. Шрифт готов!

Естественно, никто не отменял корректировок шрифта "ручками" для придания красивостей и большей плотности букв - это удобнее всего делать сохранив картинку-шрифт из Bitmap Font Builder с сеткой для ориентировки не вылазят ли буквы в знакоместах, перед финальным сохранением сетку убрать (например заменив цвет сетки на черный).
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
NightRadio
Site Admin
Posts: 3118
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Создание битмаповых шрифтов

Post by NightRadio » Wed Jan 16, 2008 7:45 am

Да. это работает :) Но есть баг в экспорте в GIF. И еще пара багов... Вынужден это признать... На днях делаю релиз 1.35 :)

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Создание битмаповых шрифтов

Post by Al_Rado » Tue Jan 29, 2008 12:36 pm

Возвращаясь к вопросу о редактировании подготовленных шрифтов. Именно Gimp прекрасно с этой задачей справляется (пробовал на версии 2.4.2) в отличии скажем от Corel Photopaint 12 (в Photoshop'е CS у меня это тоже не вышло сделать). Т.е. в нем намного удобнее готовить Gif-анимацию и многостраничные Пикси. Это так, собственный опыт :)
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
NightRadio
Site Admin
Posts: 3118
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Создание битмаповых шрифтов

Post by NightRadio » Tue Jan 29, 2008 10:10 pm

Это интересно. А каким образом?
Я сейчас как раз полностью под Linux перешел. Тут пока кроме Гимпа ничего путнего нету :)

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Создание битмаповых шрифтов

Post by Al_Rado » Wed Jan 30, 2008 12:57 pm

Да в Гимпе просто все - перетянул анимированную гифку (или открыл) - все ее кадры высвечиваются на плавающем окне "Слои, каналы, контуры". Причем выглядит это так "Кадр 256(50 ms)"(например) и слева "глаз"(иконка видимости слоя) и так далее до первого кадра(он называется фон). Для того чтобы отредактировать кадр №5 (например) - выключаем "глазки" всем остальным слоям и выделяем кадр5(подсветится синим).
Редактим кадры, затем идем в Файл->Сохранить как, выбираем Gif image("Выберите тип файла" окошко открывается если нажать на плюсик), выбираем путь, Сохранить -> Сохранить как анимацию -> Экспорт. Расположение кадра -> Один кадр на слой(замена), выставляем время("если задержка между кадрами не указана она равна:") в миллисекундах (400-500 на мой взгляд нормально, для того чтобы не мелькало и можно было разглядеть в просмотрщике) Ну и все :)
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

Post Reply