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:
@@ -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 );
|
||||
|
||||
|
Reference in New Issue
Block a user