#include "wx/defs.h"
#endif
-#if wxUSE_STREAMS && wxUSE_LIBPNG
+#if wxUSE_LIBPNG
#include "wx/image.h"
#include "wx/bitmap.h"
IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler)
#endif
+#if wxUSE_LIBPNG
+
#if defined(__VISAGECPP__)
#define LINKAGEMODE _Optlink
#else
return FALSE;
}
- if (!verbose) png_set_error_fn(png_ptr, (png_voidp)NULL, png_silent_error, png_silent_warning);
+ if (!verbose) png_set_error_fn(png_ptr, (png_voidp)NULL, png_silent_error, png_silent_warning);
png_infop info_ptr = png_create_info_struct(png_ptr);
if (info_ptr == NULL)
data[(x << 2) + 0] = *ptr++;
data[(x << 2) + 1] = *ptr++;
data[(x << 2) + 2] = *ptr++;
- if ((data[(x << 2) + 0] == image->GetMaskRed()) &&
- (data[(x << 2) + 1] == image->GetMaskGreen()) &&
- (data[(x << 2) + 2] == image->GetMaskBlue()))
+ if (( !image->HasMask() ) || \
+ (data[(x << 2) + 0] != image->GetMaskRed()) || \
+ (data[(x << 2) + 1] != image->GetMaskGreen()) || \
+ (data[(x << 2) + 2] != image->GetMaskBlue()))
{
- data[(x << 2) + 3] = 0;
+ data[(x << 2) + 3] = 255;
}
else
{
- data[(x << 2) + 3] = 255;
+ data[(x << 2) + 3] = 0;
}
}
png_bytep row_ptr = data;
return TRUE;
}
-bool wxPNGHandler::CanRead( wxInputStream& stream )
+bool wxPNGHandler::DoCanRead( wxInputStream& stream )
{
unsigned char hdr[4];
return (hdr[0] == 0x89 && hdr[1] == 'P' && hdr[2] == 'N' && hdr[3] == 'G');
}
-#endif // wxUSE_STREAMS && wxUSE_LIBPNG
+#endif // wxUSE_STREAMS
+#endif // wxUSE_LIBPNG