fixed SaveDIB() crash with BW images (patch 1045884)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2004-12-12 17:40:00 +00:00
parent 8193d58f17
commit 0ce5a3a853

View File

@@ -273,14 +273,16 @@ bool wxBMPHandler::SaveDib(wxImage *image,
else if ( (format == wxBMP_8BPP_GREY) || (format == wxBMP_8BPP_RED) || else if ( (format == wxBMP_8BPP_GREY) || (format == wxBMP_8BPP_RED) ||
(format == wxBMP_1BPP_BW) ) (format == wxBMP_1BPP_BW) )
{ {
int i;
rgbquad = new wxUint8 [palette_size*4]; rgbquad = new wxUint8 [palette_size*4];
for (i = 0; i < palette_size; i++) for ( int i = 0; i < palette_size; i++ )
{ {
// if 1BPP_BW then just 0 and 255 then exit // if 1BPP_BW then the value should be either 0 or 255
if (( i > 0) && (format == wxBMP_1BPP_BW)) i = 255; wxUint8 c = (i > 0) && (format == wxBMP_1BPP_BW) ? 255 : i;
rgbquad[i*4] = rgbquad[i*4+1] = rgbquad[i*4+2] = (wxUint8)i;
rgbquad[i*4] =
rgbquad[i*4+1] =
rgbquad[i*4+2] = c;
rgbquad[i*4+3] = 0; rgbquad[i*4+3] = 0;
} }
} }