Fix to work with images embedded in streams (doesn't reset pos to 0)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guillermo Rodriguez Garcia 1999-11-30 14:38:42 +00:00
parent 065de61268
commit 9d0e21da25

View File

@ -2,8 +2,8 @@
// Name: gifdecod.cpp // Name: gifdecod.cpp
// Purpose: wxGIFDecoder, GIF reader for wxImage and wxAnimation // Purpose: wxGIFDecoder, GIF reader for wxImage and wxAnimation
// Author: Guillermo Rodriguez Garcia <guille@iies.es> // Author: Guillermo Rodriguez Garcia <guille@iies.es>
// Version: 3.03 // Version: 3.04
// RCS-ID: // RCS-ID: $Id$
// Copyright: (c) Guillermo Rodriguez Garcia // Copyright: (c) Guillermo Rodriguez Garcia
// Licence: wxWindows licence // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
@ -444,12 +444,9 @@ int wxGIFDecoder::dgif(IMAGEN *img, int interl, int bits)
bool wxGIFDecoder::CanRead() bool wxGIFDecoder::CanRead()
{ {
unsigned char buf[3]; unsigned char buf[3];
off_t pos;
pos = m_f->TellI();
m_f->SeekI(0, wxFromStart);
m_f->Read(buf, 3); m_f->Read(buf, 3);
m_f->SeekI(pos, wxFromStart); stream.SeekI(-3, wxFromCurrent);
return (memcmp(buf, "GIF", 3) == 0); return (memcmp(buf, "GIF", 3) == 0);
} }
@ -479,7 +476,6 @@ int wxGIFDecoder::ReadGIF()
return E_FORMATO; return E_FORMATO;
/* check for and animated GIF support (ver. >= 89a) */ /* check for and animated GIF support (ver. >= 89a) */
m_f->SeekI(0, wxFromStart);
m_f->Read(buf, 6); m_f->Read(buf, 6);
if (memcmp(buf + 3, "89a", 3) < 0) if (memcmp(buf + 3, "89a", 3) < 0)