--- 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);