Entwickler-Ecke
Multimedia / Grafik - ExtractIconEx Problem
Viper - Mi 28.07.04 16:52
Titel: ExtractIconEx Problem
Hallo.
Mit Hilfe der ExtractIconEx Funktion lade ich alle Icons die in einer DLL oder EXE vorhanden sind. Jetzt habe ich aber das Problem, dass ich nie die Icons in Originalgröße erhalte, sondern einmal in 32x32 und in 16x16. Bei einigen Icons sieht man dann, dass sie einfach vergrößert, bzw. verkleinert wurden.
Jetzt ist meine Frage, ob es eine Möglichkeit gibt, an die Originalgröße der Icons heran zu kommen?
Viper - Do 29.07.04 11:40
Ja, das habe ich schon min. 10x gelesen. Ich glaube du hast mich nicht ganz verstanden. Ich habe es auch etwas umständlich formuliert, also versuch ich es nochmal:
Erstmal die Funktion:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| UINT ExtractIconEx( LPCTSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons ); |
Als erstes lese ich mit der ExtractIconEx - Funktion aus, wieviele Icons sich insgesamt in der Datei befinden. Dann lade ich die Icons mit der Funktion, wobei ich beide Arrays, phiconLarge und phiconSmall, füllen lasse. Wenn ich die beiden Arrays auslese und anzeigen lasse, ist es aber so, dass in beiden Arrays alle Icons sind. Ich bekomme aber nicht die Originalgröße der Icons, sondern die Funktion setzt alle Icons im phiconLarge Array auf 32x32 (egal ob es die Originalgröße der Icons war, oder nicht) und im phiconSmall Array auf 16x16. Das führt dazu, dass besonders bei Icons, die einfach vergrößert wurden, das Ergebnis aufgedunsen aussieht. Ich möchte es irgendwie schaffen, dass die Icons nicht einfach von der Funtion vergrößert oder verkleinert werden.
MSCH - Do 29.07.04 19:03
sind die Icons in einer ImageList? auch da musst du die Size angeben, ansonsten wird imho 32x32 genommen, und dann werdn die Bilder etwas "unscharf".
grez
msch
BenBE - Do 29.07.04 23:06
OT: Wie geht das mit ExtractIconEx, wenn ich 256-Farb-Icons (oder mehr Farben) haben will? Krieg über die Delphi-TICon-Kompo immer nur 16 Farben raus ... Source von mir folgt, wenn nötig...
Viper - Fr 30.07.04 10:34
@BenBe: genau die gleichen Probleme habe ich auch, aber ich habe bei [url]
http://www.torry.net[/url] einen Anwendung mit Source gefunden, die alle Icons lädt (egal wieviel Farben und welche Auflösung) und dann erstmal als Bitmap darstellt. Ich werde mir die wichtigen Units daraus jetzt für mein Programm umschreiben.
Hier der direkte Downloadlink:
http://www.torry.net/samples/samples/res/readiconlist.zip
Dann gibt es noch eine Komponente dort, die TIcon32 heißt. Ich habe es noch nicht getestet, aber so wie es aussieht kann die auch 256-Farb-Icons speichern.
@MSCH: natürlich habe ich die in einer ImageList. Aber ich habe eine ImageList für große und kleine Icons, nur ich bekomme bei ExtractIcon nie die richtige Größe der Icons geliefert.
BenBE - Fr 30.07.04 21:59
Werd mir die beiden mal angucken. Problem ist, dass ich das Icon aus ner (mit Shit AsPack gecrypteten) EXE (IrfanView) auslesen will und Resourcen-Editoren da nicht weit kommen...
Und mein Icon-Extracter hatte auch nicht die erwünschten Erfolge (wie gesagt: nur 16 Farben mit VCL ...)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!