def posterise2(pic):

  # Try this: Uncomment the second next line, and put 'ranges'
  # in the three 'pickFromRanges' function calls:
  #ranges = [[0,63,31],[63,127,95],[128,191,159],[192,255,223]]

  # Loop through the pixels
  for p in getPixels(pic):

    # Get the RGB values
    red = getRed(p)
    green = getGreen(p)
    blue = getBlue(p)

    # Check and set red values
    newred = pickFromRanges(red,[[0,63,31],[63,127,95],[128,191,159],[192,255,223]])
    setRed(p,newred)

    # Check and set green values
    newgreen = pickFromRanges(green,[[0,63,31],[63,127,95],[128,191,159],[192,255,223]])
    setGreen(p,newgreen)

    # Check and set blue values
    newblue = pickFromRanges(blue,[[0,63,31],[63,127,95],[128,191,159],[192,255,223]])
    setBlue(p,newblue)



def pickFromRanges(input, ranges):
  for r in ranges:
    if (input >= r[0]) and (input <= r[1]):
      return r[2]

  # If we get here, something weird happened
  return 0
 

