예제 #1
0
def editColors(img):
  edited = img.copy()

  # allow for color intensity options
  (r,g,b) = [np.array(chan,dtype=np.uint16) for chan in edited.split()]
  channels = { 'r': r, 'g': g, 'b': b }
  for chan in channels:
    channels[chan] = channels[chan] * colorChannels[chan].get()/100.0
    channels[chan] = channels[chan].clip(0,255)
  edited = Image.merge("RGB",[Image.fromarray(channels[chan].astype(np.uint8)) for chan in ('r','g','b')])

  saturator = ImageEnhance.Color(edited)
  edited = saturator.enhance(saturation.get()/100.0)

  lightnessor = ImageEnhance.Brightness(edited)
  edited = lightnessor.enhance(lightness.get()/100.0)
  
  contrastor = ImageEnhance.ContrastEink(edited)
  edited = contrastor.enhance(contrast.get()/100.0)
  
  return edited
예제 #2
0
            channels[chan] = channels[chan].clip(0, 255)
    im = Image.merge("RGB", [
        Image.fromarray(channels[chan].astype(np.uint8))
        for chan in ('r', 'g', 'b')
    ])

if args['saturation'] != None:
    saturator = ImageEnhance.Color(im)
    im = saturator.enhance(args['saturation'])

if args['lightness']:
    lightnessor = ImageEnhance.Brightness(im)
    im = lightnessor.enhance(args['lightness'])

if args['contrast']:
    contrastor = ImageEnhance.ContrastEink(im)
    im = contrastor.enhance(args['contrast'])

# convert input image to real color dithered
if not args["keepPalette"]:
    im.load()
    paletteImage.load()
    newim = im.im.convert("P", True, paletteImage.im)
    im = im._new(newim)

if not args["o"] and not args["p"] and not args["showEinkPalette"]:
    im.show()

# get the dithered images bytes and hot swap out the real color
#   palette for the eink color palette
ba = BytesIO()