Python y 16 Bit Tiff

¿Cómo puedo convertir y guardar un TIF de un solo canal de 16 bits en Python?

Puedo cargar una imagen de 16 y 32 bits sin problemas, y ver que la imagen de 32 bits está en modoF y la imagen de 16 bits está en modoI;16S:

import Image
i32 = Image.open('32.tif')
i16 = Image.open('16.tif')
i32
# <TiffImagePlugin.TiffImageFile image mode=F size=2000x1600 at 0x1098E5518>
i16
# <TiffImagePlugin.TiffImageFile image mode=I;16S size=2000x1600 at 0x1098B6DD0>

Pero tengo problemas para trabajar con la imagen de 16 bits. Si deseo guardar como PNG, no puedo hacerlo directamente:

i32.save('foo.png')
# IOError: cannot write mode F as PNG
i16.save('foo.png')
# ValueError: unrecognized mode

Si convierto la imagen de 32 bits, puedo guardarla:

i32.convert('L').save('foo.png')

Pero el mismo comando no funcionará con la imagen de 16 bits:

i16.convert('L').save('foo.png')
# ValueError: unrecognized mode

Respuestas a la pregunta(4)

Su respuesta a la pregunta