Hi,
ich möchte ein Icon aus einer .exe Datei extrahieren und als .ico File abspeichern.
In anderem Zusammenhang hat @RFG dazu auf die Icon.ExtractAssociatedIcon Methode hingewiesen.
Damit kann man recht einfach ein Icon extrahieren:
Will man das Icon in einer PictureBox (picIcon) anzeigen, dann kodiert man:
Wenn man das Icon in eine .ico Datei speichern will, dann erreicht man das wie folgt:
Das klappt auch soweit. Die Icons werden fehlerfrei angezeigt und abgespeichert. Aber ...
... die gespeicherten Icons haben alle die gleiche Größe, nämlich 766 Bytes.
Für einige kleine Icons ist das ausreichend, die werden korrekt angezeigt.
Für andere Icons hingegen reicht das nicht aus, die sind wohl zu groß ... und dann gehen Farben und Zeichnungselemente verloren!
Ich hab das mal exemplarisch für die Datei
Wie man sieht wird das Icon im Display ordentlich dargestellt. Das abgespeicherte Icon hingegen ist nur ein Schatten seiner selbst, wie man in der Vergrößerung deutlich erkennt.
Mit der Speicherung liegt also irgendetwas im Argen.
Hat jemand eine Idee was da falsch laufen könnte?
LG
Peter
ich möchte ein Icon aus einer .exe Datei extrahieren und als .ico File abspeichern.
In anderem Zusammenhang hat @RFG dazu auf die Icon.ExtractAssociatedIcon Methode hingewiesen.
Damit kann man recht einfach ein Icon extrahieren:
Will man das Icon in einer PictureBox (picIcon) anzeigen, dann kodiert man:
Wenn man das Icon in eine .ico Datei speichern will, dann erreicht man das wie folgt:
Das klappt auch soweit. Die Icons werden fehlerfrei angezeigt und abgespeichert. Aber ...
... die gespeicherten Icons haben alle die gleiche Größe, nämlich 766 Bytes.
Für einige kleine Icons ist das ausreichend, die werden korrekt angezeigt.
Für andere Icons hingegen reicht das nicht aus, die sind wohl zu groß ... und dann gehen Farben und Zeichnungselemente verloren!
Ich hab das mal exemplarisch für die Datei
C:\Windows\System32\notepad.exe
durchgeführt. (s.Anhang)Wie man sieht wird das Icon im Display ordentlich dargestellt. Das abgespeicherte Icon hingegen ist nur ein Schatten seiner selbst, wie man in der Vergrößerung deutlich erkennt.
Mit der Speicherung liegt also irgendetwas im Argen.
Hat jemand eine Idee was da falsch laufen könnte?
LG
Peter