Applied patch [ 1183803 ] PNM: support for ascii grey + raw grey

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2005-05-22 15:37:40 +00:00
parent 11734f8af6
commit 3e8711cef5
5 changed files with 40088 additions and 8 deletions

View File

@@ -68,13 +68,9 @@ 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('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."));
@@ -97,6 +93,23 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
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;
@@ -114,6 +127,23 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
}
}
}
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 );