Changeset 118


Ignore:
Timestamp:
Mar 23, 2007, 1:58:09 AM (14 years ago)
Author:
alloc
Message:
 
Location:
oup/current/Global
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • oup/current/Global/OniImgClass.pas

    r113 r118  
    2020    function ResizeImage(oldx, oldy: Integer; img: TByteData): TByteData;
    2121    procedure RevertImage;
    22     procedure DecodeImage;
    2322    procedure DecompressImage;
    2423  protected
     
    3837    function LoadFromTXMB(ConnectionID, FileID: Integer): Boolean;
    3938    function GetImageDataSize(fading: Boolean): Integer;
     39
     40    procedure DecodeImageTo32bit;
    4041
    4142    procedure GetAsData(var Target: TStream); overload;
     
    132133
    133134
    134 procedure TOniImage.DecodeImage;
     135procedure TOniImage.DecodeImageTo32bit;
    135136var
    136137  x, y:  Integer;
     
    371372  txmpimg := TOniImage.Create;
    372373  txmpimg.LoadFromTXMP(ConnectionID, PSpc.TXMP);
    373   txmpimg.DecodeImage;
     374  txmpimg.DecodeImageTo32bit;
    374375//  txmpimg.WriteToBMP('C:\file.bmp');
    375376  txmpimg.GetAs32bit(txmpdata);
     
    536537    images_decoded[i] := TOniImage.Create;
    537538    images_decoded[i].LoadFromTXMP(ConnectionID, link);
    538     images_decoded[i].DecodeImage;
     539    images_decoded[i].DecodeImageTo32bit;
    539540    images_decoded[i].RevertImage;
    540541  end;
     
    604605  x    := Self.FWidth;
    605606  y    := Self.FHeight;
    606   size := x * y * bpp div 8;
     607  size := (x * y * bpp) div 8;
    607608  if fading then
    608609  begin
     
    610611      x    := x div 2;
    611612      y    := y div 2;
    612       size := size + x * y * bpp div 8;
     613      size := (size + x * y * bpp) div 8;
    613614    until (x = 1) or (y = 1);
    614615  end;
     
    655656begin
    656657  if not (DT_Decoded32 in Self.FDataType) then
    657     Self.DecodeImage;
     658    Self.DecodeImageTo32bit;
    658659  if not Assigned(Target) then
    659660    Target := TMemoryStream.Create;
     
    684685begin
    685686  if not (DT_Decoded32 in Self.FDataType) then
    686     Self.DecodeImage;
     687    Self.DecodeImageTo32bit;
    687688
    688689  SetLength(Target, Self.FWidth * Self.FHeight * 3 + 54);
  • oup/current/Global/RawList.pas

    r113 r118  
    312312  storetype: Byte;
    313313  datasize:  Integer;
    314 begin
     314  mipmap:    Byte;
     315  bpp:       Byte;
     316begin
     317  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $88, SizeOf(mipmap), @mipmap);
    315318  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $8C, SizeOf(x), @x);
    316319  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $8E, SizeOf(y), @y);
     
    318321  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $9C, 4, @link_pc);
    319322  ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $A0, 4, @link_mac);
     323
     324
    320325  case storetype of
    321326    0, 1, 2:
    322       datasize := x * y * 2;
     327      bpp := 16;
     328//      datasize := x * y * 2;
    323329    8:
    324       datasize := x * y * 4;
     330      bpp := 32;
     331//      datasize := x * y * 4;
    325332    9:
    326       datasize := x * y div 2;
    327   end;
     333      bpp := 4;
     334//      datasize := x * y div 2;
     335  end;
     336
     337  datasize := (x * y * bpp) div 8;
     338  if (mipmap and $01) > 0 then
     339  begin
     340    repeat
     341      x    := x div 2;
     342      y    := y div 2;
     343      datasize := (datasize + x * y * bpp) div 8;
     344    until (x = 1) or (y = 1);
     345  end;
     346
    328347  SetLength(Result, 1);
    329348  if ConManager.Connection[ConnectionID].DataOS = DOS_WIN then
  • oup/current/Global/TypeDefs.pas

    r113 r118  
    7676
    7777  TRawDataInfo = record
    78       SrcID:       Integer;
    79       SrcOffset:   Integer;
    80       RawAddr:     Integer;
    81       RawSize:     Integer;
    82       LocSep:      Boolean;
     78      SrcID:         Integer;
     79      SrcOffset:     Integer;
     80      RawAddr:       Integer;
     81      RawSize:       Integer;
     82      LocSep:        Boolean;
    8383  end;
    8484  TRawDataList = array of TRawDataInfo;
Note: See TracChangeset for help on using the changeset viewer.