#!/usr/bin/python3
# ===============================================================
# GMP image row padding calculator
# ===============================================================
import user_interface as ui
msg = '''\
+--------------------------------------------------+
| GMP Image padding Calculator |
| |
| The pixel format is defined by the DIB header or |
| extra bit masks. Each row in the Pixel array is |
| padded to a multiple of 4 bytes in size. |
+--------------------------------------------------+'''
# -------------------------------------------------------
# ---- calculate row padding
# -------------------------------------------------------
def calculate_row_padding(width:int) -> int:
match (width * 3) % 4:
case 3:
return 1
case 2:
return 2
case 1:
return 3
return 0
# -------------------------------------------------------
# ---- main
# -------------------------------------------------------
if __name__ == '__main__':
print(msg)
while True:
print()
s = ui.get_user_input('Enter number of pixels: ')
if not s: break
tf,i = ui.is_int(s)
if not tf:
print()
print(f' Error: bad entry ({s})')
continue
p = calculate_row_padding(i)
print(f'Pixels={i:<3} padding={p}')