From c3f0aeca7f406ee90d747b0eaeb1cb3082c741b6 Mon Sep 17 00:00:00 2001 From: Ace Date: Tue, 16 Oct 2018 17:07:33 +0200 Subject: [PATCH] Create monocolour-converter.py --- Calendar/monocolour-converter.py | 102 +++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Calendar/monocolour-converter.py diff --git a/Calendar/monocolour-converter.py b/Calendar/monocolour-converter.py new file mode 100644 index 0000000..0621f38 --- /dev/null +++ b/Calendar/monocolour-converter.py @@ -0,0 +1,102 @@ +""" +This is a python image converter specific for the E-Paper-Calendar +on github by aceisace from the link below. +(https://github.com/aceisace/E-Paper-Calendar-with-iCal-sync-and-live-weather) + +It will convert the 3-colour .bmp's to 2-colour .bmp's so that they can be +used even with the 2-Colour 7.5" E-Paper Display from waveshare. + +Please use with caution. If the input and output paths are the same, the +convertr will overwrite all .bmp files. It's highly recommended to make a +backup of the entire 'Calendar" folder first. + +Copyright by Ace-Laboratory +""" + +""" +Info: These paths contain the bmps that require converting. +1) /home/pi/E-Paper-Master/Calendar/months/ + language +3) /home/pi/E-Paper-Master/Calendar/other/ + language +""" +path = '/home/pi/E-Paper-Master/Calendar/' +#--------------only change the following lines-----------------# +input_path_1 = path+/'other/de/' +output_path_1 = path+'other/de/' + +input_path_2 = path+'months/de/' +output_path_2 = path+'months/de/' + +input_path_3 = path+/'other/en/' +output_path_3 = path+'other/en/' + +input_path_4 = path+/'other/en/' +output_path_4 = path+'other/en/' +#-----------------no need to change anything below-----------------# + +import glob, os, errno +from PIL import Image +import PIL.ImageOps + +imagenames_1 = [] +imagenames_2 = [] +imagenames_3 = [] +imagenames_4 = [] + +print('opening the specified directory...') + +os.chdir(input_path_1) #folder containg files +for files in glob.glob('*.bmp'): #find bmp files + imagenames_1.append(files) #add these files to a list +print('Found these files:', imagenames_1) #print this list + +os.chdir(input_path_2) #folder containg files +for files in glob.glob('*.bmp'): #find bmp files + imagenames_2.append(files) #add these files to a list +print('Found these files:', imagenames_2) #print this list + +os.chdir(input_path_3) #folder containg files +for files in glob.glob('*.bmp'): #find bmp files + imagenames_3.append(files) #add these files to a list +print('Found these files:', imagenames_3) #print this list + +os.chdir(input_path_4) #folder containg files +for files in glob.glob('*.bmp'): #find bmp files + imagenames_4.append(files) #add these files to a list +print('Found these files:', imagenames_4) #print this list + + +# 0 is black, 255 is white, 127 is red. +# The following will convert the 'red' parts to white parts. +thresh = 100 # any value below 127 works. +fn = lambda x : 255 if x > thresh else 0 + +try: + print('checking if the first output path exists...') + os.makedirs(output_path_1) +except OSError as e: + print('Oh, the first output path exists already. Assuming you know what you are doing.') + print('Will attempt to overwrite all .bmp files') + if e.errno != errno.EEXIST: + raise + +try: + print('checking if the second output path exists...') + os.makedirs(output_path_2) +except OSError as e: + print('Oh, the second output path exists already. Assuming you know what you are doing.') + print('Will attempt to overwrite all .bmp files') + if e.errno != errno.EEXIST: + raise + +print('attempting to convert images...') +for files in imagenames_1: + ((Image.open(input_path_1+files)).convert('L').point(fn, mode='1').save(output_path_1+files)) +for files in imagenames_2: + ((Image.open(input_path_2+files)).convert('L').point(fn, mode='1').save(output_path_2+files)) +for files in imagenames_3: + ((Image.open(input_path_3+files)).convert('L').point(fn, mode='1').save(output_path_3+files)) +for files in imagenames_4: + ((Image.open(input_path_4+files)).convert('L').point(fn, mode='1').save(output_path_4+files)) + +print('All done!') +print('The bmp have been converted. Good luck!')