diff --git a/DemoPrograms/Demo_Base64_Image_Encoder.py b/DemoPrograms/Demo_Base64_Image_Encoder.py new file mode 100644 index 00000000..96fd4517 --- /dev/null +++ b/DemoPrograms/Demo_Base64_Image_Encoder.py @@ -0,0 +1,40 @@ +import PySimpleGUI as sg +import os +import base64 + +''' + Base64 Encoder - encodes a folder of PNG files and creates a .py file with definitions +''' + +OUTPUT_FILENAME = 'output.py' + +def main(): + # folder = r'C:\Python\PycharmProjects\GooeyGUI\Uno Cards' + folder='' + folder = sg.PopupGetFolder('Source folder for images\nImages will be encoded and results saved to %s'%OUTPUT_FILENAME, + title='Base64 Encoder', + default_path=folder, initial_folder=folder ) + + if folder is None or folder == '': + sg.PopupCancel('Cancelled - No valid folder entered') + return + try: + namesonly = [f for f in os.listdir(folder) if f.endswith('.png')] + except: + sg.PopupCancel('Cancelled - No valid folder entered') + return + + outfile = open(os.path.join(folder, OUTPUT_FILENAME), 'w') + + for i, file in enumerate(namesonly): + contents = open(os.path.join(folder, file), 'rb').read() + encoded = base64.b64encode(contents) + outfile.write(f'{file[:file.index(".")]} = {encoded}\n') + sg.OneLineProgressMeter('Base64 Encoding', i+1, len(namesonly),key='_METER_') + + outfile.close() + sg.Popup('Completed!', 'Encoded %s files'% i) + + +if __name__ == '__main__': + main()