def bitstreams(point_size,char)
font_data=@contents[point_size+1]
return nil if font_data.nil?
bit_stream_index=font_data[0x04]+0x100*font_data[0x05]
bit_stream_base=font_data[0x06]+0x100*font_data[0x07]
char_pointer=2*((char[0]%0x80)-0x20)
start_of_char=font_data[char_pointer+bit_stream_index]+0x100*font_data[char_pointer+bit_stream_index+1]
start_of_next_char=font_data[char_pointer+bit_stream_index+2]+0x100*font_data[char_pointer+bit_stream_index+3]
bitstream=[]
char_height(point_size).times do |line|
bitstream[line]=[]
bit_counter=0
start_of_line_bitstream=line*bytes_in_bitstream(point_size)+bit_stream_base
(start_of_char..start_of_next_char-1).each do |bit_offset|
byte_offset=bit_offset/8
bitmask=0b10000000>>(bit_offset % 8)
byte=font_data[start_of_line_bitstream+byte_offset]
bitstream[line][bit_counter]=(((byte & bitmask)!=0)? 1 : 0)
bit_counter+=1
end
end
bitstream
end