AGB  ·  Datenschutz  ·  Impressum  







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

Extraktion von Icons

Ein Thema von Vroomfondel · begonnen am 3. Mai 2006 · letzter Beitrag vom 3. Mai 2006
Antwort Antwort
Vroomfondel

Registriert seit: 12. Aug 2005
6 Beiträge
 
#1

Extraktion von Icons

  Alt 3. Mai 2006, 10:53
Hallo Leute,

ich brauche gerade ein paar Icons (XP-Style) für eine meiner Anwendungen und wollte dabei auf die mit Windows gelieferten zurückgreifen. Nun liegen diese ja nicht als ICO-Files vor, sondern sind in Anwendungen und DLLs eingebettet - man muss sie folglich extrahieren. Ich mache das so:

Code:
uses ShellAPI...

...

function IconFromFile(S : string): TIcon;
var
  MyIcon : TIcon;
  SHFileInfo: TSHFileInfo;
begin
  MyIcon := TIcon.Create;
  SHGetFileInfo(pchar(S), 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_ICON);
  MyIcon.Handle:= SHFileInfo.hIcon;
  Result:=MyIcon;
end;
Läd man das von obiger Funktion zurückgegebene Icon in ein Image, z.B.

Code:
Image1.Picture.Icon:=IconFromFile('C:\WINDOWS\system32\sndrec32.exe');
dann erhält man das:

http://www.imgmonkey.com/thumb/9461-icon1.gif (schön)

Nun wäre es unsauber, das Icon zur Laufzeit zu extrahieren und darzustellen. Wer weiß schon ob es die Quelldatei in zukünftigen Windows-Versionen noch gibt oder unter welchem Pfad sie abgelegt ist? Folglich brauche ich das ICO-File.

Speichert man das von obiger Funktion gelieferte Icon

Code:
MyIcon := IconFromFile('C:\WINDOWS\system32\sndrec32.exe');
MyIcon.SaveToFile('C:\icon.ico');
dann sieht das Resultat allerdings so aus:

http://www.imgmonkey.com/thumb/3111-icon2.gif (würg)

Ich habe auch einige Icon Extraktions-Tools ausprobiert und leider scheinen sie ähnliche Ergebnisse zu liefern.

---> Frage: Wie extrahiert man ein Icon richtig (d.h. als 1:1 Kopie)?

Alternativ wäre ich auch dankbar für Hinweise bzgl. Freeware Icon-Sammlungen (XP-Style). Momentan suche ich v.a. Icons aus dem Audio-Bereich (Mikrofone, Lautsprecher etc.).

Danke für Eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Extraktion von Icons

  Alt 3. Mai 2006, 10:56
Die Farbtiefe scheint nicht zu stimmen.

Desweiteren darfst du keine Windows Icons extrahieren und mit deiner Anwendung ausliefern, da du damit eine Urheberrechtsverletzung begehst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#3

Re: Extraktion von Icons

  Alt 3. Mai 2006, 11:37
Ich hab mich in letzter Zeit etwas nach freien Icon-Sammlungen umgeschaut, leider gibt es nicht wirklich viele kostenlose (man muss schon so 99-129$ rechnen für was vernünftiges), aber ein paar hab ich doch gefunden.
Einerseits bekommst du nämlich für die kostenlose Registrierung von Visual C# Express ein Icon-Pack. Nichts großes zwar, aber für den Anfang ganz ok.
16x16-Icons: http://www.famfamfam.com/lab/icons/silk/
http://www.quadrone.org/graphics/

Ansonsten, insbesondere wenn du ganz bestimmte Icons brauchst, sind deine Chancen am besten, dir dafür die entsprechenden Bilder herauszusuchen und mit einem Icon-Editor in ein Windows-Icon umzuwandeln. deviantART könnte da eine interessante Adresse sein.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Extraktion von Icons

  Alt 3. Mai 2006, 12:11
Die Silk Icons sind sehr brauchbar.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dj_Base
Dj_Base

Registriert seit: 10. Aug 2004
Ort: Aachen
231 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Extraktion von Icons

  Alt 3. Mai 2006, 12:16
www.everaldo.com
www.iconaholic.com
www.kde-look.org
www.deviantart.com
www.glyfx.net



Hatten wir aber auch schon ziemlich oft im Forum...
Auch Google spuckt diese Seiten ziemlich früh aus...

mfg,
Dj_Base
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Extraktion von Icons

  Alt 3. Mai 2006, 12:36
Hi
Zwei Sachen:

1.: Man darf die Windows Icons nicht direkt einbinden
2.: Der Verlust der Farbtiefe kommt von der TIcon Klasse, die nur mit 16 Bit Farben umgehen kann. Es gibt aber extra Units, die Icons mit 32 Bit speichern können. Z.B. die Unit IconsToFile.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Extraktion von Icons

  Alt 3. Mai 2006, 12:59
Zitat von Florian Bernd:
1.: Man darf die Windows Icons nicht direkt einbinden
Ich hab (hier?) schon mehrfach gelesen, dass man xp-Icons zwar zur Laufzeit einbinden darf, aber nicht bei der Anwendung mitliefern darf (weil sonst die bööösen Linux-User kommen und die Icons extrahieren und selbst verwenden )


es gibt aber sowieso Icons die viel schöner sind als die xp-Icons.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Extraktion von Icons

  Alt 3. Mai 2006, 13:28
Ich meinte ja, dass man die Icons nicht extrahieren darf und dann z.B. in einer ImageList mitliefert. Erlaubt ist das Extrahieren in den Speicher (also beispielsweise in ein TIcon) ohne Speichern des Icons.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:26 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