![]() |
Qualität eines Icon verbessern?
Hi Leute,
ich habe ein kleines Programm geschrieben, welches aus einem Dateinamen das Icon liefert. Das funktiontiert ohne Probleme! Aber warum hat das Icon eine schlechte Qualität wenn ich es abspeicher? Zum Beispiel hat das Icon eines Word Docs nicht die Qualität des Originals! Kann man die Auflösung beeinflußen? |
Re: Qualität eines Icon verbessern?
Icons können mit mehreren Auflösunge/Farbtiefen definiert sein.
Vermutlich fragst Du nur das Icon mit einer geringen Farbtiefe/Auflösung ab (Code wäre hilfreich)? |
Re: Qualität eines Icon verbessern?
Delphi-Quellcode:
function IconFromFile(const Filename: string; IconIndex: Word = 0): HICON;
var Buffer: array[0..2 * MAX_PATH] of Char; begin StrPCopy(Buffer, Filename); Result := ExtractAssociatedIcon(hInstance, Buffer, IconIndex); end; procedure SaveAsIcon(const FileName: string; Icon: TIcon); begin if (Icon.Handle <> 0) then Icon.SaveToFile(Filename); end; |
Re: Qualität eines Icon verbessern?
Probier mal die Funktion SHGetFileInfo. Dort kannst Du angeben, welche Infos (z.B. kleines/großes Icon) Du haben willst.
|
Re: Qualität eines Icon verbessern?
Hi,
ich glaube TIcon kann nur mit Icons, die 16 Farben haben richtig umgehen. MagicAndre1981 |
Re: Qualität eines Icon verbessern?
Wie baut man SHGetFileInfo am Geschicktesten in meinen Source ein?
|
Re: Qualität eines Icon verbessern?
Moin Chris,
ich denke wenn Du hier mal nach ![]() |
Re: Qualität eines Icon verbessern?
alternativ auch so:
Delphi-Quellcode:
uses ShellApi;
procedure TForm1.FormCreate(Sender: TObject); var kleines_icon, grosses_icon : HICON; icon : TIcon; begin ExtractIconEx(Pchar(Application.Exename),0,grosses_icon,kleines_icon,1); with TIcon.Create do begin Handle := grosses_icon; SaveToFile('C:\icon_gross.ico'); Handle := kleines_icon; SaveToFile('C:\icon_klein.ico'); Free; end; end; |
Re: Qualität eines Icon verbessern?
@perle:
Guter Vorschlag, aber ich will nicht nur das Icon einer EXE, sondern von allen Dateien. |
Re: Qualität eines Icon verbessern?
Code:
wie du siehst, kannst du der Funktion als ersten Parameter nicht nur "EXEn" übergeben.
HICON ExtractIconEx(
LPCSTR lpszFile, int nIconIndex, HICON FAR * phiconLarge, HICON FAR * phiconSmall, UINT nIcons ); lpszFile Pointer to a null-terminated string specifying the name of an executable file, DLL, or icon file. EDIT : Stumpfsinn gepostet....vergiss das einfach :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 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-2025 by Thomas Breitkreuz