Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Gif in ein TBitmap laden (https://www.delphipraxis.net/64113-gif-ein-tbitmap-laden.html)

ferby 27. Feb 2006 18:22


Gif in ein TBitmap laden
 
Hallo,

Ich möchte gerne eine gif Datei in ein TBitmap laden.
Ich habe schon im Forum gesucht, allerdings sind das immer aufwendige Lösungen da animation und transparenz unterstützt wird.

Ich brauche nur eine einfache umwandlung, sprich: so wie wenn ich mit mspaint eine gif datei öffne
(Transparenz und animation wird nicht unterstützt)

Geht so etwas einfach..........??

turboPASCAL 27. Feb 2006 18:28

Re: Gif in ein TBitmap laden
 
Da Delphi von Haus aus keine Unterstützung für das Gif-Format hat musst du dir eine Komponente suchen.
zB.: Hier im Forum suchenTGifImage
Dann kanst du das Gif in ein Bitmap umwandeln, so wie das zB. bei einem JPEG geschiet.

ferby 27. Feb 2006 18:37

Re: Gif in ein TBitmap laden
 
Hallo,

ich finde den KOmponenten nicht... nur immer bis Delphi 5, ich verwende aber Delphi 7.....


:-(

Klaus01 27. Feb 2006 19:01

Re: Gif in ein TBitmap laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
anbei die Datei

Grüße
Klaus

ferby 27. Feb 2006 19:17

Re: Gif in ein TBitmap laden
 
Hallo,

danke,
funz alles super!


Ferby

Timelesk 5. Jul 2006 17:32

Re: Gif in ein TBitmap laden
 
Hallo ferby,

wie hast du dein Problem gelöst?
Ich hänge daran, dass er mir immer nur die Farbe WEIß ausgibt, obwohl das Bild komplett bunt ist!

Delphi-Quellcode:
var
  x,y, i: integer;
  tmp: string;
  bmp: TBitmap;
begin
  //Erstelle Bitmap
  bmp := TBitmap.Create;
  try
    //Lade Breite und Höhe des eigentlichen Bildes
    bmp.Width := image_map[anz_countries].Width;
    bmp.Height := image_map[anz_countries].Height;
    //Lade Gif in Bitmap
    bmp.Assign(image_map[anz_countries-1].Picture.Bitmap);
    //Durchgehe alle angegebenen Koordinaten für die Farben
    for i := 1 to anz_colors do
      begin
        tmp := ini.ReadString('Farb-Koordinaten', inttostr(i), '0,0');
        x := strtoint( Copy(tmp, 0, pos(',', tmp) - 1) );
        y := strtoint( Copy(tmp, pos(',', tmp) + 1, maxint) );
        colors[i-1] := bmp.Canvas.Pixels[x,y];
        //Ausgabe zur Kontrolle - Testzwecke
        showmessage(ColorToString(bmp.Canvas.Pixels[x,y]));
    end;
  finally
    bmp.Free;
  end;
end;
Aber leider gibt er mir immer nur weiß aus!
Es ist zum verzweifeln!
Woran liegt es?
GifImage hab ich in den Units eingebunden!

Hoffentlich kann mir jemand helfen...

Vielen herzlichen Dank

pacman1986 5. Jul 2006 19:35

Re: Gif in ein TBitmap laden
 
geh nicht ueber bitmap

einfach

Delphi-Quellcode:
Image.Picture.LoadFromFile(Filename);
ich weiss net genau worauf du hinauswillst aber denke das ich es getroffen habe

ferby 5. Jul 2006 21:31

Re: Gif in ein TBitmap laden
 
Hallo,

Ich habe es schluss endlich nicht mit einen Bitmap geschaft sondern mit einen TImage.

Verwende einfach die TImage Komponente, so wie pacman1986 es geschrieben hat.

Ps. Es wird sogar Animation und Transparenz unterstützt!

Timelesk 6. Jul 2006 16:13

Re: Gif in ein TBitmap laden
 
hi,

das ist nicht mein problem ;)

mein problem ist, dass ich auf dem gif die farbe herausfinden muss.
das geht aber anscheinend nur mit bitmaps!

Problemlösung:

1. gif := TGifImage und bmp := TBitmap
2. lade bild von TImage in gif
3. lade bild von gif in bmp über bmp.assign(gif.Bitmap)
4. Hole die Farbe
5. gib alles wieder frei!


Trotzdem vielen Dank!

BassFan 6. Jul 2006 16:39

Re: Gif in ein TBitmap laden
 
Zitat:

Zitat von Timelesk
hi,

das ist nicht mein problem ;)

mein problem ist, dass ich auf dem gif die farbe herausfinden muss.
das geht aber anscheinend nur mit bitmaps!

Problemlösung:

1. gif := TGifImage und bmp := TBitmap
2. lade bild von TImage in gif
3. lade bild von gif in bmp über bmp.assign(gif.Bitmap)
4. Hole die Farbe
5. gib alles wieder frei!


Trotzdem vielen Dank!

Hab nicht soviel ahnung von Delphi.
In VB gehts ganz einfach über die API .. xxxFarbe = GetPixel(posX,PosY) wobei PosX,PosY für
die coordinaten des pixels im Bitmap steht.

gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.

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