Конференция "Media" » сохранение в TGA файл [D7, WinXP]
 
  • Эдвард (05.12.11 02:57) [0]
    очень много написано об считывании тга файла
    а как сохранить в тга файл ??
    может есть ссылки какие? или сами знаете методы? просто открыть то может программа тга а вот сохранить в тга не особо. созает или пустой файл или без формата который какие то данные содержит
  • Jeer © (05.12.11 09:49) [1]
  • Эдвард (05.12.11 12:36) [2]
    ну что там нет про TGA
  • Эдвард (05.12.11 12:38) [3]
    и мне нужно без огл
    не текстуры грузить
    а просто тга открыть изображение сохранить изображение(не посредством скрина)
  • Jeer © (05.12.11 12:52) [4]
  • Эдвард (05.12.11 15:20) [5]
    procedure TTGABitmap.WriteTGAStreamData(Stream: TStream);
    var
     aBitmap: TBitmap;
     TGAHeader: TTGAHeader;
     i: integer;
     P1: PByteArray;
    begin
     FillChar(TGAHeader, SizeOf(TGAHeader), Chr(0));
     TGAHeader.ImageType := 2;

     aBitmap := TBitmap.Create;
     try
       aBitmap.Assign(self);
       if not (aBitmap.PixelFormat in [pf24bit, pf32bit]) then
         aBitmap.PixelFormat := pf24bit;
       if aBitmap.PixelFormat = pf24bit then
         TGAHeader.BPP := 24
       else
         TGAHeader.BPP := 32;
       TGAHeader.Width[0] := byte(aBitmap.Width);
       TGAHeader.Width[1] := aBitmap.Width shr 8;
       TGAHeader.Height[0] := byte(aBitmap.Height);
       TGAHeader.Height[1] := aBitmap.Height shr 8;
       Stream.Write(TGAHeader, SizeOf(TGAHeader));

       for i := aBitmap.Height - 1 downto 1 do
       begin
         P1 := aBitmap.ScanLine[i];
         if TGAHeader.BPP = 24 then
           Stream.Write(P1^, aBitmap.Width * 3)
         else if TGAHeader.BPP = 32 then
           Stream.Write(P1^, aBitmap.Width * 4);
       end;

     finally
       aBitmap.Free;
     end;
    end;
  • Эдвард (05.12.11 15:21) [6]
    в чем ошибка?
  • Сергей М. © (05.12.11 15:28) [7]

    > for i := aBitmap.Height - 1 downto 1 do
  • Эдвард (18.12.11 13:32) [8]
    в этой строке ошибка?
    а в чем именно?
  • Эдвард (18.12.11 16:49) [9]
    а все я понял) там 0 вместо 1)
    спасибо Сергей
 
Конференция "Media" » сохранение в TGA файл [D7, WinXP]
Есть новые Нет новых   [134430   +3][b:0][p:0]