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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2012, 21:14   #1
ssman
Новичок
Джуниор
 
Регистрация: 28.05.2012
Сообщений: 2
Стрелка Проблема с TJPEGImage

Здравствуйте! У меня есть картинка jpg, скаченная из инета с помощью idHTTP и помещенная в переменную типа string. Мне необходимо перевести эту картинку в формат BMP и работать с ней уже как с типом TBitmap, но при этом для ускорения работы программы нельзя пользоваться сохранением картинки на жесткий диск и последующим чтением с помощью функций которые есть в различных примерах в сети.

Вот на всякий случай один из вариантов предлагаемых на просторах интернета:

Код:
uses JPEG;
 
procedure JPEGtoBMP( const FileName: TFileName);
var
  jpeg: TJPEGImage;
  bmp: TBitmap;
begin 
  jpeg := TJPEGImage.Create; 
  try 
    jpeg.CompressionQuality := 100 ; {Default Value} 
    jpeg.LoadFromFile(FileName); // нужен какой то аналог такой функции, но чтобы загрузка изображения шла именно из переменной типа string
    bmp := TBitmap.Create; 
    try 
      bmp.Assign(jpeg); 
      // операции с картинкой
      ...
    finally
      bmp.Free;
    end;
  finally
    jpeg.Free;
  end;
end;
Если есть решение - пожалуйста приведите хотябы набросок кода!

Последний раз редактировалось ssman; 28.05.2012 в 21:28.
ssman вне форума Ответить с цитированием
Старый 28.05.2012, 21:46   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
procedure JPEGtoBMP(const FileName: string);
var
  jpeg: TJPEGImage;
  bmp: TBitmap;
  ts: tmemorystream;
  http: tidhttp;
begin
  http := tidhttp.Create();
  ts := tmemorystream.Create;
  jpeg := TJPEGImage.Create;
  try
    http.Get(filename, ts);
    ts.Position := 0;
    jpeg.CompressionQuality := 100; {Default Value}
    jpeg.LoadFromStream(ts);
    bmp := TBitmap.Create;
    try
      bmp.Assign(jpeg);
      // операции с картинкой
    finally
      bmp.Free;
    end;
  finally
    jpeg.Free;
    http.free;
    ts.free;
  end;
end;
Помещать картинку в string - плохая затея.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.05.2012, 18:31   #3
ssman
Новичок
Джуниор
 
Регистрация: 28.05.2012
Сообщений: 2
По умолчанию

То что надо, спасибо!
ssman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка конвертации TJPegImage to a TJpegImage Lokos Общие вопросы Delphi 8 20.10.2010 11:00
TGifImage TJpegImage TPngImage FantasyDD Компоненты Delphi 0 24.05.2010 15:41
Попиксельный доступ к TJPEGImage Serge_Bliznykov Общие вопросы Delphi 4 29.09.2009 22:57
TMemorystream -> TJPEGimage ( используя сеть ) Lime Работа с сетью в Delphi 2 17.02.2009 03:14
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37