Wie kann ich ein Bild einer bestimmten Größe aus einem Icon extrahieren?

8

Wie kann ich ein Bild mit einer bestimmten Größe oder alle Bilder von einem Icon mit mehreren Bildern extrahieren?

    
Branko 28.09.2010, 14:32
quelle

1 Antwort

11

Sie sagen nicht, was der Zweck ist, und es gibt eine Reihe von Möglichkeiten, Symbole zu erhalten, und je nach Zweck kann eine Methode besser als eine andere sein.

Um jedoch eine beliebige Anzahl von "großen" (32x32) und / oder "kleinen" (16x16) Symbolen * aus einer beliebigen Datei zu extrahieren, verwenden Sie die ExtractIconEx Funktion. Auf diese Weise können Sie ein oder mehrere Symbole dieser beiden Standardgrößen aus einer Symboldatei (.ico), EXE oder DLL extrahieren. Eine Symboldatei kann mehrere Bilder enthalten. Mit dieser Funktion können Sie alle Bilder erhalten.

Die Funktion schreibt in ein Array von Handles, die Sie jeweils der Handle -Eigenschaft einer TIcon -Instanz zuweisen können. Dann können Sie die Methoden TIcon wie gewohnt verwenden, wenn Sie den TIcon anders geladen hätten Weg. Beachten Sie, dass es neu in Delphi XE ist, es einfach in eine Bitmap über die Assign-Methode zu kopieren . Dieser Artikel zeigt auch, wie Sie auf auf alle Standard-Windows-Betriebssysteme zugreifen können Symbole , wenn dies der Fall ist, nach dem Sie suchen.

(Randnotiz: Ich denke, die TIcon -Klasse ermöglicht das Laden einer Datei über ihre LoadFromFile method - das scheint in der Dokumentation zu fehlen, aber ich bin ziemlich sicher, dass es existiert. Aus dem Speicher, das nur ein einzelnes Symbol lädt.)

  

(*) Eigentlich können "groß" und "klein"   anders sein als 32x32 und 16x16: verwenden   das    GetSystemMetrics   Funktion mit SM_CXICON ,    SM_CYICON , SM_CXSMICON und    SM_CYSMICON flags, um das herauszufinden   Dimensionen jedes Typs.

    
David M 29.09.2010, 01:39
quelle

Tags und Links