--- oup/current/Global/OniImgClass.pas 2007/02/25 17:20:22 113 +++ oup/current/Global/OniImgClass.pas 2007/03/23 00:58:09 118 @@ -19,7 +19,6 @@ type function ResizeImage(oldx, oldy: Integer; img: TByteData): TByteData; procedure RevertImage; - procedure DecodeImage; procedure DecompressImage; protected public @@ -38,6 +37,8 @@ type function LoadFromTXMB(ConnectionID, FileID: Integer): Boolean; function GetImageDataSize(fading: Boolean): Integer; + procedure DecodeImageTo32bit; + procedure GetAsData(var Target: TStream); overload; procedure GetAsData(var Target: TByteData); overload; procedure GetAs32bit(var Target: TStream); overload; @@ -131,7 +132,7 @@ end; -procedure TOniImage.DecodeImage; +procedure TOniImage.DecodeImageTo32bit; var x, y: Integer; tempd: TByteData; @@ -370,7 +371,7 @@ begin end; txmpimg := TOniImage.Create; txmpimg.LoadFromTXMP(ConnectionID, PSpc.TXMP); - txmpimg.DecodeImage; + txmpimg.DecodeImageTo32bit; // txmpimg.WriteToBMP('C:\file.bmp'); txmpimg.GetAs32bit(txmpdata); { ShowMessage(IntToStr(txmpimg.Width)+'x'+IntToStr(txmpimg.Height)); @@ -535,7 +536,7 @@ begin link := link div 256; images_decoded[i] := TOniImage.Create; images_decoded[i].LoadFromTXMP(ConnectionID, link); - images_decoded[i].DecodeImage; + images_decoded[i].DecodeImageTo32bit; images_decoded[i].RevertImage; end; SetLength(Self.FData, Self.FWidth * Self.FHeight * 4); @@ -603,13 +604,13 @@ begin x := Self.FWidth; y := Self.FHeight; - size := x * y * bpp div 8; + size := (x * y * bpp) div 8; if fading then begin repeat x := x div 2; y := y div 2; - size := size + x * y * bpp div 8; + size := (size + x * y * bpp) div 8; until (x = 1) or (y = 1); end; Result := size; @@ -654,7 +655,7 @@ end; procedure TOniImage.GetAs32bit(var Target: TStream); begin if not (DT_Decoded32 in Self.FDataType) then - Self.DecodeImage; + Self.DecodeImageTo32bit; if not Assigned(Target) then Target := TMemoryStream.Create; Target.Write(FData[0], Length(FData)); @@ -683,7 +684,7 @@ var i, x, y: Integer; begin if not (DT_Decoded32 in Self.FDataType) then - Self.DecodeImage; + Self.DecodeImageTo32bit; SetLength(Target, Self.FWidth * Self.FHeight * 3 + 54); for y := 0 to Self.FHeight - 1 do