X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..39987096b3aa3e1bec4f69a5793780f7ea2dd914:/src/common/imagpnm.cpp diff --git a/src/common/imagpnm.cpp b/src/common/imagpnm.cpp index cea78ca07e..86884d7d09 100644 --- a/src/common/imagpnm.cpp +++ b/src/common/imagpnm.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: imagpnm.cpp +// Name: src/common/imagpnm.cpp // Purpose: wxImage PNM handler // Author: Sylvain Bougnoux // RCS-ID: $Id$ @@ -7,10 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "imagpnm.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,7 +15,6 @@ #endif #ifndef WX_PRECOMP -# include "wx/setup.h" #endif #if wxUSE_IMAGE && wxUSE_PNM @@ -68,17 +63,13 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose switch (c) { - case wxT('2'): - if (verbose) wxLogError(_("Loading Grey Ascii PNM image is not yet implemented.")); - return FALSE; - case wxT('5'): - if (verbose) wxLogError(_("Loading Grey Raw PNM image is not yet implemented.")); - return FALSE; - case wxT('3'): - case wxT('6'): break; + case wxT('2'): // ASCII Grey + case wxT('3'): // ASCII RGB + case wxT('5'): // RAW Grey + case wxT('6'): break; default: if (verbose) wxLogError(_("PNM: File format is not recognized.")); - return FALSE; + return false; } text_stream.ReadLine(); // for the \n @@ -94,11 +85,28 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose { if (verbose) wxLogError( _("PNM: Couldn't allocate memory.") ); - return FALSE; + return false; } - if (c=='3') // Ascii RBG - { + + if (c=='2') // Ascii GREY + { + wxUint32 value, size=width*height; + for (wxUint32 i=0; iSetMask( FALSE ); + image->SetMask( false ); const wxStreamError err = buf_stream.GetLastError(); return err == wxSTREAM_NO_ERROR || err == wxSTREAM_EOF; @@ -142,15 +167,17 @@ bool wxPNMHandler::DoCanRead( wxInputStream& stream ) if ( stream.GetC() == 'P' ) { - switch (stream.GetC()) + switch ( stream.GetC() ) { - case '3': - case '6': - return TRUE; + case '2': // ASCII Grey + case '3': // ASCII RGB + case '5': // RAW Grey + case '6': // RAW RGB + return true; } } - return FALSE; + return false; }