+ default:
+ wxFAIL_MSG( _T("unknown wxPNG_TYPE_XXX") );
+ // fall through
+
+ case wxPNG_TYPE_COLOUR:
+ *pData++ = uchRed;
+ if ( iBitDepth == 16 )
+ *pData++ = 0;
+ *pData++ = uchGreen;
+ if ( iBitDepth == 16 )
+ *pData++ = 0;
+ *pData++ = uchBlue;
+ if ( iBitDepth == 16 )
+ *pData++ = 0;
+ break;
+
+ case wxPNG_TYPE_GREY:
+ {
+ // where do these coefficients come from? maybe we
+ // should have image options for them as well?
+ unsigned uiColor =
+ (unsigned) (76.544*(unsigned)uchRed +
+ 150.272*(unsigned)uchGreen +
+ 36.864*(unsigned)uchBlue);
+
+ *pData++ = (unsigned char)((uiColor >> 8) & 0xFF);
+ if ( iBitDepth == 16 )
+ *pData++ = (unsigned char)(uiColor & 0xFF);
+ }
+ break;
+
+ case wxPNG_TYPE_GREY_RED:
+ *pData++ = uchRed;
+ if ( iBitDepth == 16 )
+ *pData++ = 0;
+ break;