changeset 6907:8a7c4b1f39ea draft

(svn r10156) -Fix: PNG loader can now load 8bpp palette images and greyscale images
author truelight <truelight@openttd.org>
date Thu, 14 Jun 2007 14:11:08 +0000
parents c67a063b99bf
children 71da5dd33fa4
files src/spriteloader/png.cpp
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/spriteloader/png.cpp
+++ b/src/spriteloader/png.cpp
@@ -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);