See https://sourceforge.net/p/openil/patches/43/

This patch will cause TIFFs with only a single color channel to be
saved as such, rather than as RGB.

--- src-IL/src/il_tiff.c	(revision 1663)
+++ src-IL/src/il_tiff.c	(working copy)
@@ -987,11 +987,15 @@
 	TIFFSetField(File, TIFFTAG_IMAGEWIDTH, TempImage->Width);
 	TIFFSetField(File, TIFFTAG_IMAGELENGTH, TempImage->Height);
 	TIFFSetField(File, TIFFTAG_COMPRESSION, Compression);
-	TIFFSetField(File, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB);
+	if((TempImage->Format == IL_LUMINANCE) || (TempImage->Format == IL_LUMINANCE_ALPHA))
+		TIFFSetField(File, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
+	else
+		TIFFSetField(File, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB);
 	TIFFSetField(File, TIFFTAG_BITSPERSAMPLE, TempImage->Bpc << 3);
 	TIFFSetField(File, TIFFTAG_SAMPLESPERPIXEL, TempImage->Bpp);
-	if (TempImage->Bpp == 4) //TODO: LUMINANCE, LUMINANCE_ALPHA
-		TIFFSetField(File, TIFFTAG_MATTEING, 1);
+	if ((TempImage->Bpp == ilGetBppFormat(IL_RGBA)) ||
+			(TempImage->Bpp == ilGetBppFormat(IL_LUMINANCE_ALPHA)))
+		TIFFSetField(File, TIFFTAG_EXTRASAMPLES, EXTRASAMPLE_ASSOCALPHA);
 	TIFFSetField(File, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
 	TIFFSetField(File, TIFFTAG_ROWSPERSTRIP, 1);
 	TIFFSetField(File, TIFFTAG_SOFTWARE, ilGetString(IL_VERSION_NUM));
