X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/39d16996b7616bf8090b140db74fd0b52d50d169..8f9d20d16f54a088aea5fb5e826bf1690efac2ff:/src/common/imagpnm.cpp?ds=inline diff --git a/src/common/imagpnm.cpp b/src/common/imagpnm.cpp index a11007de33..ce31404d45 100644 --- a/src/common/imagpnm.cpp +++ b/src/common/imagpnm.cpp @@ -7,7 +7,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "imagpnm.h" #endif @@ -39,12 +39,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxPNMHandler,wxImageHandler) void Skip_Comment(wxInputStream &stream) { - wxTextInputStream text_stream(stream); + wxTextInputStream text_stream(stream); - if (stream.Peek()==wxT('#')) + if (stream.Peek()==wxT('#')) { - text_stream.ReadLine(); - Skip_Comment(stream); + text_stream.ReadLine(); + Skip_Comment(stream); } } @@ -68,17 +68,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,9 +90,26 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose { if (verbose) wxLogError( _("PNM: Couldn't allocate memory.") ); - return FALSE; + return false; } + + if (c=='2') // Ascii GREY + { + wxUint32 value, size=width*height; + for (wxUint32 i=0; iSetMask( FALSE ); + image->SetMask( false ); - return (buf_stream.LastError()==wxStream_NOERROR || buf_stream.LastError()==wxStream_EOF); + const wxStreamError err = buf_stream.GetLastError(); + return err == wxSTREAM_NO_ERROR || err == wxSTREAM_EOF; } bool wxPNMHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool WXUNUSED(verbose) ) @@ -129,10 +160,10 @@ bool wxPNMHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool WXUNUS //text_stream << "P6" << endl //<< image->GetWidth() << " " << image->GetHeight() << endl //<< "255" << endl; - text_stream << "P6\n" << image->GetWidth() << " " << image->GetHeight() << "\n255\n"; + text_stream << wxT("P6\n") << image->GetWidth() << wxT(" ") << image->GetHeight() << wxT("\n255\n"); stream.Write(image->GetData(),3*image->GetWidth()*image->GetHeight()); - return (stream.LastError()==wxStream_NOERROR); + return stream.IsOk(); } bool wxPNMHandler::DoCanRead( wxInputStream& stream ) @@ -145,11 +176,11 @@ bool wxPNMHandler::DoCanRead( wxInputStream& stream ) { case '3': case '6': - return TRUE; + return true; } } - return FALSE; + return false; }