{"id":1192,"date":"2011-04-24T19:05:32","date_gmt":"2011-04-24T17:05:32","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1192"},"modified":"2011-04-25T08:00:17","modified_gmt":"2011-04-25T06:00:17","slug":"utility-clearance-rasterize-font","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1192","title":{"rendered":"Utility Clearance: Rasterize Font"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1193 alignleft\" title=\"RasterizeFont Output\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/04\/Character-005a.png\" alt=\"\" width=\"48\" height=\"72\" \/> RasterizeFont utility takes a font on the input (such as Windows .TTF &#8211; <a href=\"http:\/\/en.wikipedia.org\/wiki\/TrueType\">True-Type Font<\/a>) and paints individual characters into bitmaps. Utility output includes separate bitmap (.BMP) files for requested characters and C++ source code of the bimap arrays (this was included into microcontroller project).<\/p>\n<p>A configuration .INI file defines rasterizer parameters:<\/p>\n<pre>[General]\r\nWidth=48\r\nHeight=72\r\nHorizontal Adjustment=1\r\nVertical Adjustment=0\r\nOutline=1\r\n\r\n[Font]\r\nFace=Times New Roman\r\nHeight=48\r\nWeight=1024\r\n\r\n[Bitmaps]\r\nPathTemplate=Character-%04x.bmp<\/pre>\n<p>And a list of characters of interest is passed as a command line argument.<\/p>\n<pre style=\"color: #000000; background: #ffffff;\"><span style=\"color: #800000; font-weight: bold;\">const<\/span> <span style=\"color: #603000;\">BYTE<\/span> pnCharacter007a<span style=\"color: #808030;\">[<\/span><span style=\"color: #808030;\">]<\/span> <span style=\"color: #808030;\">=<\/span> <span style=\"color: #696969;\">\/\/ 0x007a z<\/span>\r\n<span style=\"color: #800080;\">{<\/span>\r\n    <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 01 01 01 01 01 01 01 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 01 01 01 01 01 01 01 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 01 01 01 01 01 01 01 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x54<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x00<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x05<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 00 00 00 00 00 00 00 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x52<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0xaa<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0xa1<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 00 10 10 10 10 10 10 10 00 01 <\/span>\r\n    <span style=\"color: #008000;\">0x52<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x00<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0xa1<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 00 10 00 00 00 00 10 10 00 01 <\/span>\r\n    <span style=\"color: #008000;\">0x54<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x42<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x85<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 00 01 00 00 10 10 00 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x2a<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x15<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 01 00 10 10 10 00 01 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x54<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0xa0<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x45<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 00 10 10 00 00 01 00 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x52<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x80<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x21<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 00 10 10 00 00 00 00 10 00 01 <\/span>\r\n    <span style=\"color: #008000;\">0x52<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0xaa<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0xa1<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 00 10 10 10 10 10 10 10 00 01 <\/span>\r\n    <span style=\"color: #008000;\">0x54<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x00<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x05<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 00 00 00 00 00 00 00 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 01 01 01 01 01 01 01 01 01 <\/span>\r\n    <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span> <span style=\"color: #008000;\">0x55<\/span><span style=\"color: #808030;\">,<\/span>  <span style=\"color: #696969;\">\/\/ 01 01 01 01 01 01 01 01 01 01 01 01 <\/span>\r\n<span style=\"color: #800080;\">}<\/span><span style=\"color: #800080;\">;<\/span><\/pre>\n<p>A binary [<a href=\"http:\/\/trac2.assembla.com\/roatl-utilities\/browser\/trunk\/RasterizeFont\/_Bin\/Win32\/Release\/RasterizeFont.exe?format=raw\">Win32<\/a>] and Visual C++ .NET 2008 source code <a href=\"http:\/\/trac2.assembla.com\/roatl-utilities\/browser\/trunk\/RasterizeFont\">are  available from SVN<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>RasterizeFont utility takes a font on the input (such as Windows .TTF &#8211; True-Type Font) and paints individual characters into bitmaps. Utility output includes separate bitmap (.BMP) files for requested characters and C++ source code of the bimap arrays (this was included into microcontroller project). A configuration .INI file defines rasterizer parameters: [General] Width=48 Height=72&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1192\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[487,38,337,335,334,488,336,132,489],"class_list":["post-1192","post","type-post","status-publish","format-standard","hentry","category-utilities","tag-atl","tag-c","tag-character","tag-font","tag-rasterize","tag-source","tag-ttf","tag-utility","tag-wtl"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=1192"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1192\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}