예제 #1
0
def put_highlight(image, highlight, resample_highlight, opacity, cache=None):
    if cache is None:
        cache = {}
    resample_highlight = getattr(Image, resample_highlight)
    id = 'highlight_%s_w%d_h%d_o%d'\
        % (highlight, image.size[0], image.size[1], opacity)
    try:
        highlight = cache[id]
    except KeyError:
        highlight = open_image(highlight)\
            .convert('RGBA').resize(image.size, resample_highlight)
        if opacity < 100:
            #apply opacity
            highlight_alpha = imtools.get_alpha(highlight)
            opacity = (255 * opacity) / 100
            highlight.putalpha(ImageMath.eval("convert((a * o) / 255, 'L')",
                a=highlight_alpha, o=opacity))
        #store in cache
        cache[id] = highlight
    if not has_transparency(image):
        image = image.convert('RGBA')
    else:
        if has_transparency(image):
            image = image.convert('RGBA')
        alpha = imtools.get_alpha(image)
        highlight = highlight.copy()
        highlight_alpha = imtools.get_alpha(highlight)
        highlight.putalpha(ImageMath.eval("convert(min(a, b), 'L')",
            a=alpha, b=highlight_alpha))

    overlay = highlight.convert('RGB')
    paste(image, overlay, mask=highlight)
    return image
예제 #2
0
def put_mask(image, mask, resample_mask, cache=None):
    if cache is None:
        cache = {}
    resample_mask = getattr(Image, resample_mask)
    id = mask + "_w%d_h%d" % image.size
    try:
        mask = cache[id]
    except KeyError:
        mask = cache[id] = open_image(mask).convert("L").resize(image.size, resample_mask)
    if not has_transparency(image):
        image = image.convert("RGBA")
    else:
        if has_transparency(image):
            image = image.convert("RGBA")
        alpha = imtools.get_alpha(image)
        mask = ImageMath.eval("convert(min(a, b), 'L')", a=alpha, b=mask)
    image.putalpha(mask)
    return image
예제 #3
0
파일: mask.py 프로젝트: Reimilia/Camellia
def put_mask(image, mask, resample_mask, cache=None):
    if cache is None:
        cache = {}
    resample_mask = getattr(Image, resample_mask)
    id = mask + '_w%d_h%d' % image.size
    try:
        mask = cache[id]
    except KeyError:
        mask = cache[id] = open_image(mask).convert('L').resize(
            image.size, resample_mask)
    if not has_transparency(image):
        image = image.convert('RGBA')
    else:
        if has_transparency(image):
            image = image.convert('RGBA')
        alpha = imtools.get_alpha(image)
        mask = (ImageMath.eval("convert(min(a, b), 'L')", a=alpha, b=mask))
    image.putalpha(mask)
    return image