Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.07.2013, 20:27
Аватар для Kpyc
Kpyc Kpyc вне форума
Новичок
 
Регистрация: 05.05.2011
Сообщения: 75
Версия Delphi: Turbo Delphi
Репутация: 11
По умолчанию Gif в TImage

Как загрузить gif в TImage? Без дополнительных модулей и компонент.
Ответить с цитированием
  #2  
Старый 03.07.2013, 20:30
Аватар для Kpyc
Kpyc Kpyc вне форума
Новичок
 
Регистрация: 05.05.2011
Сообщения: 75
Версия Delphi: Turbo Delphi
Репутация: 11
По умолчанию

Рисунки простые, поэтому очень хочется хранить их в gif, в bmp весят десятки МБ .
Ответить с цитированием
  #3  
Старый 03.07.2013, 21:00
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно вот так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  og: TOleGraphic;
  fs: TFileStream;
begin
 if OpenDialog1.Execute then
  begin
   og:= TOleGraphic.Create;
   fs:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmSharedenyNone);
   og.LoadFromStream(fs);
   Image1.Picture.Assign(og);
   fs.Free;
   og.Free;
  end;
end;
на форму киньте имидж, кнопку и опендиалог
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Kpyc (03.07.2013)
  #4  
Старый 03.07.2013, 21:14
Аватар для Kpyc
Kpyc Kpyc вне форума
Новичок
 
Регистрация: 05.05.2011
Сообщения: 75
Версия Delphi: Turbo Delphi
Репутация: 11
По умолчанию

Вроде то что надо, только Transparent перестал работать. Гружу так:

Код:
      MyLoadImage('images\MyGif.gif', source);
      Source.Height := SCREEN_Y div 10;
      Source.Width := Source.Height;
      Transparent := TRUE;
      Stretch := TRUE;

MyLoadImage - Выше описанная функция с параметрами путь и TImage
Source - TImage

Код:
procedure MyLoadImage(fName: String; img: TImage);
var
  og: TOleGraphic;
  fs: TFileStream;
begin
  og:= TOleGraphic.Create;
  fs:= TFileStream.Create(fName, fmOpenRead or fmSharedenyNone);
  og.LoadFromStream(fs);
  img.Picture.Assign(og);
  fs.Free;
  og.Free;
end;

Последний раз редактировалось Kpyc, 03.07.2013 в 21:16.
Ответить с цитированием
  #5  
Старый 03.07.2013, 21:21
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Наверное надо Source.Transparent и Source.Stretch
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Kpyc (03.07.2013)
  #6  
Старый 03.07.2013, 21:28
Аватар для Kpyc
Kpyc Kpyc вне форума
Новичок
 
Регистрация: 05.05.2011
Сообщения: 75
Версия Delphi: Turbo Delphi
Репутация: 11
По умолчанию

Не помогает. Попробовал так:

Код:
  with Source do
    begin
      MyLoadImage('images\MyGif.gif', source);
      Height := SCREEN_Y div 10;
      Width := Source.Height;
      picture.Bitmap.transparentmode := tmAuto;
      picture.bitmap.TransparentColor := clWhite;
      picture.Bitmap.transparent := true;
      Stretch := TRUE;
    end;

Изображение исчезает совсем. Причем если поставить transparent = FALSE исчезает тоже. Появляется только если удалить все строчки связанные с прозрачностью (6-8).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025