IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler)
#endif
-#if wxUSE_STREAMS
+#if wxUSE_LIBPNG
#if defined(__VISAGECPP__)
#define LINKAGEMODE _Optlink
// from pngerror.c
// so that the libpng doesn't send anything on stderr
void
-png_silent_error(png_structp png_ptr, png_const_charp WXUNUSED(message))
+LINKAGEMODE png_silent_error(png_structp png_ptr, png_const_charp WXUNUSED(message))
{
#ifdef USE_FAR_KEYWORD
{
}
void
-png_silent_warning(png_structp WXUNUSED(png_ptr), png_const_charp WXUNUSED(message))
+LINKAGEMODE png_silent_warning(png_structp WXUNUSED(png_ptr), png_const_charp WXUNUSED(message))
{
}
return TRUE;
}
-#endif
- // wxUSE_STREAMS
+bool wxPNGHandler::CanRead( wxInputStream& stream )
+{
+ unsigned char hdr[4];
-#endif
- // wxUSE_LIBPNG
+ stream.Read(&hdr, 4);
+ stream.SeekI(-4, wxFromCurrent);
+ return (hdr[0] == 0x89 && hdr[1] == 'P' && hdr[2] == 'N' && hdr[3] == 'G');
+}
+
+#endif // wxUSE_STREAMS
+#endif // wxUSE_LIBPNG