Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2012, 14:00   #1
Yungo161
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 61
По умолчанию Редактирование *.tga

задача такова: имеются изображения формата тга и их нужно редактировать. отображать желательно в TImage

вопрос таков: каким макаром эти тга файлы открыть, то бишь каким компонентом итп. и как их редактировать, записывая процесс на тимадж и потом сохранять опять же в тга формате
Yungo161 вне форума Ответить с цитированием
Старый 30.01.2012, 17:01   #2
Develop
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 52
По умолчанию

Вот тебе класс для работы с "*.TGA". Скажи спасибо автору - Tom Nuydens))
TGA2.rar
Develop вне форума Ответить с цитированием
Старый 30.01.2012, 17:35   #3
Yungo161
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 61
По умолчанию

чувствую что вопрос идиотский, но все же...

Как этим пользоваться?
Yungo161 вне форума Ответить с цитированием
Старый 30.01.2012, 17:49   #4
Develop
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 52
По умолчанию

Цитата:
Как этим пользоваться?
No comments... xDD

P.S. Ну загрузка типа так, а дальше уже сам думай.
Код:
function LoadTGAImage(ImageName: string): TMemoryStream;
var tga: TTGAImage;
  ifmt, fmt: GLenum;
  ImageSize: integer;
begin
  tga := TTGAImage.Create;
  tga.LoadFromFile(ImageName);

  if tga.Header.ImageType = 2 then
  begin
    if tga.Header.ImgSpec.Depth = 24 then
    begin
      ifmt := GL_RGB8;
      tga.BGRtoRGB;
      fmt := GL_RGB;
      ImageSize:= tga.Header.ImgSpec.Width*tga.Header.ImgSpec.Height*3;
    end
    else begin
      ifmt := GL_RGBA8;
      tga.BGRtoRGB;
      fmt := GL_RGBA;
      ImageSize:= tga.Header.ImgSpec.Width*tga.Header.ImgSpec.Height*4;
    end;
  end
  else begin
    ifmt := GL_LUMINANCE8;
    fmt := GL_LUMINANCE;
    ImageSize:= tga.Header.ImgSpec.Width*tga.Header.ImgSpec.Height;
  end;

  // load to stream --------------------
  Result:= TMemoryStream.Create;
  Result.Position:= 0;
  //
  Result.Write(fmt, SizeOf(GLenum));
  Result.Write(tga.Header.ImgSpec.Width, SizeOf(Word));
  Result.Write(tga.Header.ImgSpec.Height, SizeOf(Word));
  Result.Write(ImageSize, SizeOf(integer));
  Result.Write(tga.Data^, ImageSize);

  // cleare
  tga.Free;
end;
Develop вне форума Ответить с цитированием
Старый 30.01.2012, 18:01   #5
Yungo161
Пользователь
 
Регистрация: 20.06.2011
Сообщений: 61
По умолчанию

спасибо... правда я имел виду что мне делать с TGA2.pas
я его скачал, открыл, что дальше?

зы. хотя думаю вы опередили мой следующий вопрос)

Последний раз редактировалось Yungo161; 30.01.2012 в 18:06. Причина: не до конца написал
Yungo161 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прозрачность TGA текстур в OpenGL. _PROGRAMM_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 09.08.2011 13:57
Работа с TGA в фотошоп _PROGRAMM_ Помощь студентам 0 04.08.2011 13:27
Расширение TGA Foxtrot_1 Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 29.11.2009 22:14
Редактирование Valera24 Помощь студентам 9 11.06.2009 19:41