Esempio n. 1
0
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)
Esempio n. 2
0
def detail(image: Image.Image) -> Image.Image:
    return _apply_filter(image, ImageFilter.DETAIL())