Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как преобразовать GIf в BMP, простым способом? GIFtoBMP 
:(
    Опции темы
МММ
Дата 12.11.2002, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 18.6.2002

Репутация: нет
Всего: 1



Надо программно это сделать!!!


--------------------
PM MAIL   Вверх
Vit
Дата 12.11.2002, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



В RxLib есть поддержка GIF - посмотреть как они это реализовали...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
МММ
Дата 12.11.2002, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 18.6.2002

Репутация: нет
Всего: 1



Спасибо, реализовал!!!


--------------------
PM MAIL   Вверх
Vit
Дата 12.11.2002, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



А теперь расскажи как?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
МММ
Дата 15.11.2002, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 18.6.2002

Репутация: нет
Всего: 1



Код

procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.Execute then
       begin
        ListBox1.Items:=opendialog1.Files;
        Edit2.Text:=inttostr(ListBox1.Items.Count);
       end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,a: integer;
bm: TBItmap;
begin
a:=0;
bm:=TBItmap.Create;
image1.Picture.LoadFromFile(listbox1.Items[0]);
bm.Height:= image1.Height;
bm.Width:= listbox1.Items.Count*image1.Picture.width;
for i:=0 to listbox1.Items.Count-1 do
begin
image1.Picture.LoadFromFile(listbox1.Items[i]);
bm.Canvas.Draw(a,0,image1.Picture.Graphic);
a:=a+image1.Picture.Height;
end;
//form1.Canvas.Draw(0,0,bm);
bm.SaveToFile(Edit1.Text+'.bmp');
bm.free;
end;


Этот код, делает следующее, загружаем в листбох список Gif файлов, затем это все дело обьединяетсяв один BMP файл,картинка к картинке, кто знает DirectX поймет для чего это надо (спрайты);
Сделал еще код, чтобы по файловов из GIF (анимированных) вытаскивало каждую картинку в отдельности, или записывалов отдельный BMP по очереди, кому надо, скину!!!


--------------------
PM MAIL   Вверх
Vit
Дата 15.11.2002, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Бросай сюда, я помещу в FAQ


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
МММ
Дата 15.11.2002, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 18.6.2002

Репутация: нет
Всего: 1



Код

procedure TForm1.Button4Click(Sender: TObject);
var
i,a: integer;
bm: TBItmap;
begin
a:=0;
bm:=TBItmap.Create;
bm.Height:= RxGIFAnimator1.Height;
bm.Width:= RxGIFAnimator1.Image.Count*RxGIFAnimator1.width;
for i:=0 to RxGIFAnimator1.Image.Count-1 do
begin
RxGIFAnimator1.FrameIndex:=i;
bm.Canvas.Draw(a,0,RxGIFAnimator1.Image.Frames[i].Bitmap);
a:=a+RxGIFAnimator1.Height;
end;
//form1.Canvas.Draw(0,0,bm);
bm.SaveToFile(Edit1.Text+'.bmp');
bm.free;
end;

из файловов GIF (анимированных) вытаскивает каждую картинку в отдельности, или записывает в отдельный BMP по очереди
Для этих программок нужен всеми любимый RX Lib !!!

Vit, только эти способы которые я сам сделал, в RX Lib  не заглядывал, может кто что лучьше предложит  :thumbs-up


--------------------
PM MAIL   Вверх
gpic
Дата 12.6.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.8.2008

Репутация: нет
Всего: нет



Привет. Извините,что поднимаю старую тему, но мой вопрос пересекается с этой темой=)

Для начала, здесь немного неверен код:

Код

a:=a+RxGIFAnimator1.Height;


Нужно заменить на 
Код

a:=a+RxGIFAnimator1.Width;


Т.к. в bmp изображения становятся в ряд, то в случае,если высота анимированного gif'а меньше,чем его ширина -> спрайты будут накладываться друг на друга. В моем случае, спрайты будут идти подряд.

Но у меня появился вопрос. На некоторых анимированных гифах, при извлечении кадра, портятся цвета. Я даже не знаю что делать=( Пробовал программу MovieGear(ее рекомендует майкрософт),она тоже портит цвета при извлечении.
Нашел программу,которая правильно извлекает(cosmigo.com/promotion/index.php)- написана на delphi,использует graphicEx. Не знаю,какой компонент используется для анимированных гифов..

Прикреплю изображения в архиве:
horse.gif-анимированный gif
Horse.bmp -изображение с испорченными цветами (использовался исходник MMM из пред. поста)

Буду благодарен за помощь.

Update:
Код

В хэлпе написано:
Set CopyMode to affect the way graphical images are drawn onto the canvas. The CopyMode is used when copying an image from another canvas using the CopyRect method. CopyMode is also used by TBitmap objects when they draw themselves to a canvas.
 Use CopyMode to achieve a variety of affects when rendering an image. Achieve special effects like merged images and making parts of a bitmap transparent by combining multiple images with different CopyModes.


Видимо у меня получается изображение с прозрачностью? Как это исправить?

Это сообщение отредактировал(а) gpic - 12.6.2009, 17:14

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  Horse.zip 124,59 Kb
PM MAIL   Вверх
gpic
Дата 15.6.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.8.2008

Репутация: нет
Всего: нет



На другом форуме мне подсказали,что дело скорее всего в палитре. Вот только я не знаю как работать с палитрой. Может кто подсказать и показать пример?

з.ы. Никто не знает ответа или это слишком легко?

Это сообщение отредактировал(а) gpic - 15.6.2009, 20:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.