Font = { 0x000000000000000 => 32, 0x008208208008000 => 33, 0x514500000000000 => 34, 0x00053e514f94000 => 35, 0x0087a870af08000 => 36, 0x00046a50a562000 => 37, 0x01892462589d000 => 38, 0x208200000000000 => 39, 0x108410410408100 => 40, 0x408104104108400 => 41, 0x00022a72a200000 => 42, 0x000208f88200000 => 43, 0x000000000008400 => 44, 0x000000f80000000 => 45, 0x000000000008000 => 46, 0x082104208410800 => 47, 0x01c8a2aa289c000 => 48, 0x00860820821c000 => 49, 0x01c88231083e000 => 50, 0x01c88230289c000 => 51, 0x00431493e104000 => 52, 0x03e820f0289c000 => 53, 0x00c420f2289c000 => 54, 0x03e084108210000 => 55, 0x01c8a272289c000 => 56, 0x01c8a2782118000 => 57, 0x000008000200000 => 58, 0x000008000210000 => 59, 0x00008cc0c080000 => 60, 0x00003e03e000000 => 61, 0x000818198800000 => 62, 0x01c882108008000 => 63, 0x01e86db6f81f000 => 64, 0x00821451c8a2000 => 65, 0x03c8a2f228bc000 => 66, 0x01c8a082089c000 => 67, 0x0389228a2938000 => 68, 0x03e820f2083e000 => 69, 0x03e820f20820000 => 70, 0x01c8a09a289e000 => 71, 0x0228a2fa28a2000 => 72, 0x01c20820821c000 => 73, 0x00e0820820bc000 => 74, 0x022928c28922000 => 75, 0x02082082083e000 => 76, 0x0228b6daaaa2000 => 77, 0x032caaaaa9a6000 => 78, 0x01c8a28a289c000 => 79, 0x03c8a2f20820000 => 80, 0x01c8a28a299e000 => 81, 0x03c8a2f228a2000 => 82, 0x01c8a070289c000 => 83, 0x03e208208208000 => 84, 0x0228a28a289c000 => 85, 0x0228a2514208000 => 86, 0x022aaaa94514000 => 87, 0x0228942148a2000 => 88, 0x0228a2708208000 => 89, 0x03e08421083e000 => 90, 0x710410410410700 => 91, 0x820410208104080 => 92, 0x704104104104700 => 93, 0x008522000000000 => 94, 0x000000000000fc0 => 95, 0x008100000000000 => 96, 0x00001c09e89e000 => 97, 0x82083c8a28bc000 => 98, 0x00001e82081e000 => 99, 0x08209e8a289e000 => 100, 0x00001c8be81e000 => 101, 0x39043c410410000 => 102, 0x00001c8a289e09c => 103, 0x82083c8a28a2000 => 104, 0x008018208208000 => 105, 0x00400c104104138 => 106, 0x410412518512000 => 107, 0x608208208208000 => 108, 0x000034aaaaaa000 => 109, 0x00003c8a28a2000 => 110, 0x00001c8a289c000 => 111, 0x00003c8a28bc820 => 112, 0x00001e8a289e082 => 113, 0x00002cca0820000 => 114, 0x00001e81c0bc000 => 115, 0x01041c41040e000 => 116, 0x0000228a289e000 => 117, 0x000022894508000 => 118, 0x000022aaa514000 => 119, 0x000022508522000 => 120, 0x0000228a289e09c => 121, 0x00003e10843e000 => 122, 0x108208408208100 => 123, 0x208208208208200 => 124, 0x408208108208400 => 125, 0x000000666000000 => 126 } field = IO.popen("convert #{ ARGV[0] } gray:-") {|f| f.read } field = field.unpack("C*").map {|n| n >= 0x80 ? 1 : 0 }.each_slice(656).to_a 55.times do |y| 108.times do |x| print Font[(0..9).map {|j| field[y*11+j+4][x*6+4,6] }.join.to_i(2)].chr end puts end