Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Wie kann ich ein animiertes Gif entpacken (extract) ? (https://www.delphipraxis.net/159131-wie-kann-ich-ein-animiertes-gif-entpacken-extract.html)

thomas2009 15. Mär 2011 18:48


Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
wie kann alle Images von einem animiertes gif extrahieren ?

lbccaleb 15. Mär 2011 19:02

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Du hast doch da offensichtlich schon ein Programm dafür?

thomas2009 15. Mär 2011 19:05

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Ich wollte das Programm nicht kaufen sondern eigenes Tool mit Delphi erstellen :-D

IceBube 15. Mär 2011 20:00

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Hallo!

Das ist ganz einfach. Schau mal ob du "GifImage.pas" hast, wenn nicht lade diese herunter und binde Sie bei dir in der Unit ein.
Und so greifst du auf die Bilder zu...


Delphi-Quellcode:
var
 Bild : TGifImage;
begin
//
Bild := TGifImage.Create;
Bild.LoadFromFile(FileName);
Image1.Picture.Bitmap := Bild.Images.SubImages[Position].Bitmap
end;
lg

thomas2009 15. Mär 2011 23:52

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Gut :-D
aber ich muss vorher viele images zuerst erstellen
Nummer :=Bild.Images.count;
und dann alle Bilder drin laden

Ich weiß nicht genau wie ich am besten tun kann?
Delphi-Quellcode:
var
 Bild : TGifImage;
 zahl : Integer;
begin
//
Bild := TGifImage.Create;
Bild.LoadFromFile(FileName);
zahl:=Bild.Images.count;
with.TImage.Create(Self) do begin
width:=Bild.picture.Bitmap.width;
Height:=Bild.picture.Bitmap.Height;
Top:=10;
Left:= ... // hier muss man überlegen
parent:=ScrollBox1;
...
//Image1.Picture.Bitmap := Bild.Images.SubImages[0].Bitmap;

bild.free;
end;
wie mache ich weiter?

IceBube 16. Mär 2011 09:10

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Hm, versteh ich nicht so ganz. Meinst du, du willst alle Bilder in einer Scrollbox angezeigt haben=?
So vielleicht?

Delphi-Quellcode:
var
  gif      : TgifImage;
  I, Count : Integer;
begin
  //
  gif := TGifImage.Create;
  gif.LoadFromFile();

  //Count
  Count := gif.Images.Count;

  for I := 0 to Count - 1 do
  begin
    //
    with TImage.Create(ScrollBox1) do
    begin
      //
      Parent := ScrollBox1;
      Show();

      //
      Left           := 2 + (I*55);
      Top            := 2;

      //
      Width          := 50;
      Height         := 50;
      Proportional   := True;
      Center         := True;

      Picture.Bitmap := gif.Images.SubImages[I].Bitmap;
    end;
  end;

  //
  gif.Free;

thomas2009 16. Mär 2011 16:10

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Es funktioniert wie gewünscht :-D
Aber was wäre wenn schon eine Image bereit in Srcollbox1 existiert?
d.h. wenn Count von gif =4 ist, dann muss ich nur 3 images erstellen, da eine schon in scrollbox haben.

Sir Rufo 16. Mär 2011 16:58

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Zitat:

Zitat von thomas2009 (Beitrag 1089041)
Es funktioniert wie gewünscht :-D
Aber was wäre wenn schon eine Image bereit in Srcollbox1 existiert?
d.h. wenn Count von gif =4 ist, dann muss ich nur 3 images erstellen, da eine schon in scrollbox haben.

hmmm, ja oder es fällt ein klavier vom himmel ... was dann ... oder ein elefant ...

dann lösch alle image-Instanzen der ScrollBox :roll:

thomas2009 16. Mär 2011 17:16

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Images in Scrollbox zu löschen ist zwar eine Lösung aber nicht alternativ. Ich versuche zuerst den Code weiter zu bearbeiten. Vielleicht geht es doch ohne die Images löschen zu müssen

DeddyH 16. Mär 2011 17:28

AW: Wie kann ich ein animiertes Gif entpacken (extract) ?
 
Dazu ist nur ein bisschen Tipparbeit und Hirnschmalz erforderlich. Die Images, die schon da sind, können aktualisiert werden, die anderen werden dann halt erzeugt. Überzählige müssen dann aber doch wieder gelöscht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz