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) ||
(format == wxBMP_1BPP_BW) )
{
int i;
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 (( i > 0) && (format == wxBMP_1BPP_BW)) i = 255;
rgbquad[i*4] = rgbquad[i*4+1] = rgbquad[i*4+2] = (wxUint8)i;
// if 1BPP_BW then the value should be either 0 or 255
wxUint8 c = (i > 0) && (format == wxBMP_1BPP_BW) ? 255 : i;
rgbquad[i*4] =
rgbquad[i*4+1] =
rgbquad[i*4+2] = c;
rgbquad[i*4+3] = 0;
}
}