| 588 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 589 |  | size: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 590 |  | x, y: Word; | 
 
 
 
 
 
 
 
 
 
 
 | 591 | < | bpp:  Byte; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 592 | < | minside: Byte; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 593 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 594 | < | minside := 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 595 | < | case Self.FStoreType of | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 596 | < | 9: | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 597 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 598 | < | bpp := 4; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 599 | < | minside := 4; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 600 | < | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 601 | < | 0, 1, 2: | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 602 | < | bpp := 16; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 603 | < | 8: | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 604 | < | bpp := 32; | 
 
 
 
 
 
 
 
 
 | 591 | > |  | 
 
 
 
 
 | 592 | > | function GetImgSize(w,h, storetype: Integer): Integer; | 
 
 
 
 
 | 593 | > | begin | 
 
 
 
 
 | 594 | > | case storetype of | 
 
 
 
 
 | 595 | > | 0, 1, 2: | 
 
 
 
 
 | 596 | > | Result := w*h*2; | 
 
 
 
 
 | 597 | > | 8: | 
 
 
 
 
 | 598 | > | Result := w*h*4; | 
 
 
 
 
 | 599 | > | 9: | 
 
 
 
 
 | 600 | > | Result :=  Max(1, w div 4) * Max(1, h div 4) * 8; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 601 |  | else | 
 
 
 
 
 
 
 
 
 
 
 | 602 | < | Result := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 603 | < | Exit; | 
 
 
 
 
 
 
 
 
 | 602 | > | Result := -1; | 
 
 
 
 
 | 603 | > | end; | 
 
 
 
 
 
 
 
 
 
 
 | 604 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 605 |  |  | 
 
 
 
 
 
 
 
 | 606 | + | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 607 |  | x    := Self.FWidth; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 608 |  | y    := Self.FHeight; | 
 
 
 
 
 
 
 
 
 
 
 | 609 | < | size := (x * y * bpp) div 8; | 
 
 
 
 
 
 
 
 
 | 609 | > | size := GetImgSize(x, y, FStoreType); | 
 
 
 
 
 
 
 
 
 
 
 | 610 |  | if fading then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 611 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 612 |  | repeat | 
 
 
 
 
 
 
 
 
 
 
 | 613 | < | x    := x div 2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 614 | < | y    := y div 2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 615 | < | size := size + (x * y * bpp) div 8; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 616 | < | until (x = minside) or (y = minside); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 620 | < | if FStoreType = 9 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 621 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 622 | < | repeat | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 623 | < | x    := x div 2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 624 | < | y    := y div 2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 625 | < | size := size + (x * y * 16) div 8; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 626 | < | until (x = 1) or (y = 1); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 627 | < | end; | 
 
 
 
 
 
 
 
 
 | 613 | > | x    := Max(x div 2, 1); | 
 
 
 
 
 | 614 | > | y    := Max(y div 2, 1); | 
 
 
 
 
 | 615 | > | size := size + GetImgSize(x, y, FStoreType); | 
 
 
 
 
 | 616 | > | until (x = 1) and (y = 1); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 617 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 618 |  | Result := size; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 619 |  | end; |