Advertisement
Guest User

Font Shifter

a guest
Jan 26th, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. IMAGE_W = 128
  2. TILE_W = 8
  3. TILE_H = 16
  4.  
  5. with open('sfontorig.bmp','rb') as f:
  6.    
  7.     header = f.read(0x436)
  8.     filedata = bytearray(f.read())
  9.  
  10. def find_leftmost(ROW, COL):
  11.     leftmost = 7
  12.     for TILE_ROW in range(16):
  13.         pos = IMAGE_W * 97 + ROW * IMAGE_W * TILE_H + TILE_ROW * IMAGE_W + \
  14.               COL * TILE_W
  15.         for col in range(leftmost+1):
  16.             if filedata[pos+col] != 0:
  17.                 break
  18.         if col < leftmost:
  19.             leftmost = col
  20.     return leftmost
  21.  
  22. def shift_left(left_shift, ROW, COL):
  23.     global filedata
  24.     for TILE_ROW in range(16):
  25.         pos = IMAGE_W * 97 + ROW * IMAGE_W * TILE_H + TILE_ROW * IMAGE_W + \
  26.               COL * TILE_W
  27.         filedata[pos:pos+8] = filedata[pos + left_shift:pos + 8] + \
  28.                               b'\x00' * left_shift
  29.    
  30.  
  31. for y in range(6):
  32.     for x in range(16):
  33.         leftmost = find_leftmost(y, x)
  34.         if leftmost != 0:
  35.             shift_left(leftmost, y, x)
  36.  
  37. with open('sfont.bmp', 'wb') as f:
  38.     f.write(header)
  39.     f.write(filedata)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement