diff options
| author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-04-03 09:30:23 +0000 |
|---|---|---|
| committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-04-03 09:30:23 +0000 |
| commit | 403d82399e0735b4dc75e092e10c969bd80b9474 (patch) | |
| tree | 7fc3c2359f56de39b8791064db72fbebcc88573e /packages/fcl-image/src | |
| parent | 4cf57f660d8569db91ed090270e705a53958e6f0 (diff) | |
| download | fpc-403d82399e0735b4dc75e092e10c969bd80b9474.tar.gz | |
* Committed patch from Mantis 13331. gif is indeed always little endian.
Also added registration reader part of patch, since other readers do too.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@12996 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-image/src')
| -rw-r--r-- | packages/fcl-image/src/fpreadgif.pas | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/packages/fcl-image/src/fpreadgif.pas b/packages/fcl-image/src/fpreadgif.pas index f7dd85071d..0b86789620 100644 --- a/packages/fcl-image/src/fpreadgif.pas +++ b/packages/fcl-image/src/fpreadgif.pas @@ -192,7 +192,15 @@ begin Stream.Read(FHeader,SizeOf(FHeader)); Progress(psRunning, trunc(100.0 * (Stream.position / Stream.size)), False, Rect(0,0,0,0), '', ContProgress); if not ContProgress then exit; - + + // Endian Fix Mantis 8541. Gif is always little endian + {$IFDEF ENDIAN_BIG} + with FHeader do + begin + ScreenWidth := LEtoN(ScreenWidth); + ScreenHeight := LEtoN(ScreenHeight); + end; + {$ENDIF} // global palette if (FHeader.Packedbit and $80) <> 0 then begin @@ -207,7 +215,15 @@ begin // descriptor Stream.Read(FDescriptor, SizeOf(FDescriptor)); - + {$IFDEF ENDIAN_BIG} + with FDescriptor do + begin + Left := LEtoN(Left); + Top := LEtoN(Top); + Width := LEtoN(Width); + Height := LEtoN(Height); + end; + {$ENDIF} // local palette if (FDescriptor.Packedbit and $80) <> 0 then begin @@ -522,5 +538,7 @@ begin inherited Destroy; end; +initialization + ImageHandlers.RegisterImageReader ('GIF Graphics', 'gif', TFPReaderGif); end. |
