| 19 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 20 |  | function ResizeImage(oldx, oldy: Integer; img: TByteData): TByteData; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 21 |  | procedure RevertImage; | 
 
 
 
 
 
 
 
 
 | 22 | – | procedure DecodeImage; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 22 |  | procedure DecompressImage; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 23 |  | protected | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 24 |  | public | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 37 |  | function LoadFromTXMB(ConnectionID, FileID: Integer): Boolean; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 |  | function GetImageDataSize(fading: Boolean): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 |  |  | 
 
 
 
 
 
 
 
 | 40 | + | procedure DecodeImageTo32bit; | 
 
 
 
 
 
 
 
 | 41 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 42 |  | procedure GetAsData(var Target: TStream); overload; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 43 |  | procedure GetAsData(var Target: TByteData); overload; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 44 |  | procedure GetAs32bit(var Target: TStream); overload; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 132 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 133 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 134 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 135 | < | procedure TOniImage.DecodeImage; | 
 
 
 
 
 
 
 
 
 | 135 | > | procedure TOniImage.DecodeImageTo32bit; | 
 
 
 
 
 
 
 
 
 
 
 | 136 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 137 |  | x, y:  Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 138 |  | tempd: TByteData; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 371 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 372 |  | txmpimg := TOniImage.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 373 |  | txmpimg.LoadFromTXMP(ConnectionID, PSpc.TXMP); | 
 
 
 
 
 
 
 
 
 
 
 | 374 | < | txmpimg.DecodeImage; | 
 
 
 
 
 
 
 
 
 | 374 | > | txmpimg.DecodeImageTo32bit; | 
 
 
 
 
 
 
 
 
 
 
 | 375 |  | //  txmpimg.WriteToBMP('C:\file.bmp'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 376 |  | txmpimg.GetAs32bit(txmpdata); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 377 |  | {    ShowMessage(IntToStr(txmpimg.Width)+'x'+IntToStr(txmpimg.Height)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 536 |  | link := link div 256; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 537 |  | images_decoded[i] := TOniImage.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 538 |  | images_decoded[i].LoadFromTXMP(ConnectionID, link); | 
 
 
 
 
 
 
 
 
 
 
 | 539 | < | images_decoded[i].DecodeImage; | 
 
 
 
 
 
 
 
 
 | 539 | > | images_decoded[i].DecodeImageTo32bit; | 
 
 
 
 
 
 
 
 
 
 
 | 540 |  | images_decoded[i].RevertImage; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 541 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 542 |  | SetLength(Self.FData, Self.FWidth * Self.FHeight * 4); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 604 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 605 |  | x    := Self.FWidth; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 606 |  | y    := Self.FHeight; | 
 
 
 
 
 
 
 
 
 
 
 | 607 | < | size := x * y * bpp div 8; | 
 
 
 
 
 
 
 
 
 | 607 | > | size := (x * y * bpp) div 8; | 
 
 
 
 
 
 
 
 
 
 
 | 608 |  | if fading then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 609 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 610 |  | repeat | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 611 |  | x    := x div 2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 612 |  | y    := y div 2; | 
 
 
 
 
 
 
 
 
 
 
 | 613 | < | size := size + x * y * bpp div 8; | 
 
 
 
 
 
 
 
 
 | 613 | > | size := (size + x * y * bpp) div 8; | 
 
 
 
 
 
 
 
 
 
 
 | 614 |  | until (x = 1) or (y = 1); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 615 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 616 |  | Result := size; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 655 |  | procedure TOniImage.GetAs32bit(var Target: TStream); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 656 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 657 |  | if not (DT_Decoded32 in Self.FDataType) then | 
 
 
 
 
 
 
 
 
 
 
 | 658 | < | Self.DecodeImage; | 
 
 
 
 
 
 
 
 
 | 658 | > | Self.DecodeImageTo32bit; | 
 
 
 
 
 
 
 
 
 
 
 | 659 |  | if not Assigned(Target) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 660 |  | Target := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 661 |  | Target.Write(FData[0], Length(FData)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 684 |  | i, x, y: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 685 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 686 |  | if not (DT_Decoded32 in Self.FDataType) then | 
 
 
 
 
 
 
 
 
 
 
 | 687 | < | Self.DecodeImage; | 
 
 
 
 
 
 
 
 
 | 687 | > | Self.DecodeImageTo32bit; | 
 
 
 
 
 
 
 
 
 
 
 | 688 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 689 |  | SetLength(Target, Self.FWidth * Self.FHeight * 3 + 54); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 690 |  | for y := 0 to Self.FHeight - 1 do |