New Demo - Base64 Image Encoder - encodes a folder full of PNGs

This commit is contained in:
MikeTheWatchGuy 2018-12-07 20:55:28 -05:00
parent 9b98b8e6b9
commit ba6bc6096e
1 changed files with 40 additions and 0 deletions

View File

@ -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()