summaryrefslogtreecommitdiff
path: root/packages/fcl-image/src
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-04-03 09:30:23 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-04-03 09:30:23 +0000
commit403d82399e0735b4dc75e092e10c969bd80b9474 (patch)
tree7fc3c2359f56de39b8791064db72fbebcc88573e /packages/fcl-image/src
parent4cf57f660d8569db91ed090270e705a53958e6f0 (diff)
downloadfpc-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.pas22
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.