(svn r10156) -Fix: PNG loader can now load 8bpp palette images and greyscale images
authortruelight
Thu, 14 Jun 2007 14:11:08 +0000
changeset 7403 b49905191990
parent 7402 94575d2b8b02
child 7404 fc0559157f16
(svn r10156) -Fix: PNG loader can now load 8bpp palette images and greyscale images
src/spriteloader/png.cpp
--- a/src/spriteloader/png.cpp	Thu Jun 14 08:39:27 2007 +0000
+++ b/src/spriteloader/png.cpp	Thu Jun 14 14:11:08 2007 +0000
@@ -114,8 +114,14 @@
 	if (!mask) {
 		if (bit_depth == 16) png_set_strip_16(png_ptr);
 
-		if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png_ptr);
-	/* TODO 32bpp: Convert grayscale to rgb */
+		if (color_type == PNG_COLOR_TYPE_PALETTE) {
+			png_set_palette_to_rgb(png_ptr);
+			color_type = PNG_COLOR_TYPE_RGB;
+		}
+		if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
+			png_set_gray_to_rgb(png_ptr);
+			color_type = PNG_COLOR_TYPE_RGB;
+		}
 
 #ifdef TTD_LITTLE_ENDIAN
 		png_set_bgr(png_ptr);