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
{
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; i<size; ++i)
+ {
+ value=text_stream.Read32();
+ *ptr++=(unsigned char)value; // R
+ *ptr++=(unsigned char)value; // G
+ *ptr++=(unsigned char)value; // B
+ if ( !buf_stream )
+ {
+ if (verbose) wxLogError(_("PNM: File seems truncated."));
+ return false;
+ }
+ }
+ }
if (c=='3') // Ascii RBG
{
wxUint32 value, size=3*width*height;
if ( !buf_stream )
{
if (verbose) wxLogError(_("PNM: File seems truncated."));
- return FALSE;
+ return false;
}
}
}
+ if (c=='5') // Raw GREY
+ {
+ wxUint32 size=width*height;
+ unsigned char value;
+ for (wxUint32 i=0; i<size; ++i)
+ {
+ buf_stream.Read(&value,1);
+ *ptr++=value; // R
+ *ptr++=value; // G
+ *ptr++=value; // B
+ if ( !buf_stream )
+ {
+ if (verbose) wxLogError(_("PNM: File seems truncated."));
+ return false;
+ }
+ }
+ }
if (c=='6') // Raw RGB
buf_stream.Read( ptr, 3*width*height );
- image->SetMask( FALSE );
+ image->SetMask( false );
const wxStreamError err = buf_stream.GetLastError();
return err == wxSTREAM_NO_ERROR || err == wxSTREAM_EOF;
{
case '3':
case '6':
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}