There is a trap in setting the resolution for compressed TIFF images.
# pillow v3.1.1
import PIL.Image
im = PIL.Image.new('CMYK', (100, 100))
dpi = 100.0 # works
dpi = 100 # fails
im.save('test.tif', format='TIFF',
dpi=(dpi, dpi),
compression='tiff_lzw',
#compression='tiff_deflate',
#compression='tiff_adobe_deflate'
)
Integers fail silently resulting in the resolution value missing from the saved file. Floats work as expected.