AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PNG in ICO umwandeln

Ein Thema von Balu der Bär · begonnen am 21. Apr 2006 · letzter Beitrag vom 23. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Balu der Bär
(Gast)

n/a Beiträge
 
#11

Re: PNG in ICO umwandeln

  Alt 23. Apr 2006, 13:00
Das ist kein Problem, Lösung dafür steht hier: *klick*

Aber ich finde einfach keine schnelle und unkomplizierte Möglichkeit PNG´s ind BMP´s umzuwandeln.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#12

Re: PNG in ICO umwandeln

  Alt 23. Apr 2006, 13:01
Zitat von Khabarakh:
Das muss jede Komponente, die ein PNG anzeigen kann, zwangsweise können, also auch PNGImage. Einfach ein TPNGObject erstellen und per Draw auf ein TBitmap übertragen.
ahaaaaa.... so geht das! danke! das werd ich wohl noch mal brauchen können...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#13

Re: PNG in ICO umwandeln

  Alt 23. Apr 2006, 13:04
Zitat:
Das muss jede Komponente, die ein PNG anzeigen kann, zwangsweise können, also auch PNGImage. Einfach ein TPNGObject erstellen und per Draw auf ein TBitmap übertragen.
Ähm wie genau "übertrage" ich das denn ?
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#14

Re: PNG in ICO umwandeln

  Alt 23. Apr 2006, 13:06
Zitat von Balu der Bär:
Das ist kein Problem, Lösung dafür steht hier: *klick*

Aber ich finde einfach keine schnelle und unkomplizierte Möglichkeit PNG´s ind BMP´s umzuwandeln.
Und ich such mir schon Wund...

Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#15

Re: PNG in ICO umwandeln

  Alt 23. Apr 2006, 13:06
Delphi-Quellcode:
function WriteImage(FileName: string; WriteStream: TStream): Boolean;
var
  Factor: Integer;
  Pic: TPicture;
  Bmp, Tmp: TBitmap;
  Gif: TJvGIFImage;
  SizeTest: TJclNullStream;
begin
  Result := FileExists(FileName);
  if Result then
  begin
    Pic := TPicture.Create;
    Bmp := TBitmap.Create;
    Tmp := TBitmap.Create;
    Gif := TJvGIFImage.Create;
    SizeTest := TJclNullStream.Create;

    Pic.LoadFromFile(FileName);
    Bmp.Width := Pic.Width;
    Bmp.Height := Pic.Height;
    Bmp.Canvas.Draw(0, 0, Pic.Graphic);

    Factor := 1;
    repeat
      Tmp.Width := Bmp.Width div Factor;
      Tmp.Height := Bmp.Height div Factor;
      SetStretchBltMode(Bmp.Canvas.Handle, HALFTONE);
      SetStretchBltMode(Tmp.Canvas.Handle, HALFTONE);
      StretchBlt(Tmp.Canvas.Handle, 0, 0, Tmp.Width, Tmp.Height,
        Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, SRCCOPY);
      Gif.Assign(Tmp);
      SizeTest.Size := 0;
      Gif.SaveToStream(SizeTest);
      Inc(Factor);
    until (SizeTest.Size < 65536) and (Tmp.Height <= 240) and (Tmp.Width < 240);
    Gif.SaveToStream(WriteStream);
    Pic.Free;
    Bmp.Free;
    Tmp.Free;
    Gif.Free;
    SizeTest.Free;
  end;
end;
Der obenstehende Code laedt ein Bild in allen von TGraphic unterstuetzten Formaten (das variiert je nach installierten Komponenten).
Das Bild wird in eine Bitmap umgewandelt und dann solange verkleinert bis es kleiner als 240x240 ist und im GIF-Format kleiner als 64K ist.
Das frisch erfundene TJclNullStream speichert keine Daten sondern nur die Stream-Groesse und -Position.
Am ende wird das Bild als GIF gespeichert.

Wichtig ist das fuer das Zielformat auch das Schreiben unterstuetzt wird. Das ist nicht bei allen Implementierungen eines Formates fuer TGraphic der Fall.
Es ist auch wichtig das die Zuweisung einer TBitmap an das Zielformat ("Gif.Assign(Tmp);") unterstuetzt wird.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz