You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Space_Invaders/BmpToHConvertor.py

50 lines
1.2 KiB
Python

import argparse
from os import write
parser = argparse.ArgumentParser()
parser.add_argument("--INPUT_FILES", nargs='+', help="Path vers le fichier d'entrée")
parser.add_argument("--HEADER_NAME", help="Path pour le fichier de sortie")
parser.add_argument("--VAR_NAMES", nargs='+', help="Nom de la varriable à crée")
args = parser.parse_args()
in_files = args.INPUT_FILES
var_names = args.VAR_NAMES
output_file = open(args.HEADER_NAME+".h", "w")
output_file.write("""#ifndef INC_{}_H_
#define INC_{}_H_
#include "stdint.h"
""".format(args.HEADER_NAME.upper(), args.HEADER_NAME.upper()))
for in_file, var_name in zip(in_files, var_names):
input_file = open(in_file, "rb")
output_file.write("""uint8_t {}[] = """.format(var_name) + """{
""")
bytes_array = []
while input_file.peek(1) != b'' :
bytes_array.append("0x" + input_file.read(1).hex())
print("Il y a {} octets dans le fichier".format(len(bytes_array)))
data = ""
for n, repr in enumerate(bytes_array):
data += repr +', '
if n%8 == 7:
data+= "\n"
output_file.write(data)
output_file.write("""
};
""")
input_file.close()
output_file.write("""
#endif /* INC_{}_H_ */
""".format(args.HEADER_NAME.upper()))
output_file.close()