def applyFilter(imgObj, outpLoc, filterType, customArgs=[0]): """Aplly filter to an image, if arguments arr required use the list customArgs Help from: https://hhsprings.bitbucket.io/docs/programming/examples/python/PIL/ImageFilter.html""" # format the output dir: if it doesnt exist create it if os.path.isdir(outpLoc): pass else: os.makedirs(outpLoc) # check if the imgObj is a thumbnail already if "filtr" in imgObj.fileName: # don't do anything return False # apply filter based on filter type: # open image file im = Image.open(imgObj.fileLOC) # apply filter based on filterType argument if filterType == "BLUR": currImFltr = im.filter(ImageFilter.BoxBlur(customArgs[0])) elif filterType == "CONTOUR": currImFltr = im.filter(ImageFilter.CONTOUR()) elif filterType == "DETAIL": currImFltr = im.filter(ImageFilter.DETAIL()) elif filterType == "EDGE_ENHANCE": currImFltr = im.filter(ImageFilter.EDGE_ENHANCE_MORE()) elif filterType == "EMBOSS": currImFltr = im.filter(ImageFilter.EMBOSS()) elif filterType == "FIND_EDGES": currImFltr = im.filter(ImageFilter.FIND_EDGES()) elif filterType == "UNSHARP_MASK": currImFltr = im.filter( ImageFilter.UnsharpMask(radius=customArgs[0], percent=customArgs[1], threshold=customArgs[2])) else: print(f"no filter for filter type: {filterType}") return False # save filtered image currImFltr.save(outpLoc + "filtr-" + filterType + "-" + imgObj.fileName)
def detail(image: Image.Image) -> Image.Image: return _apply_filter(image, ImageFilter.DETAIL())