none
Bessere Auflösung für Icon RRS feed

  • Frage

  • Icon icon1= new Icon(SystemIcons.Exclamation,32,32);
    Bitmap bmp = icon1.ToBitmap();
    e.Graphics.DrawImage(bmp, new Point(200, 30));
    FileStream fstream = new FileStream("icon4.ico", FileMode.OpenOrCreate, FileAccess.Write);
    icon1.Save(fstream);
    fstream.Close();

    Wenn man das Ergebnis des gezeichneten Icons und des gespeicherten Icons vergleicht, muß man feststellen,
    daß das gespeicherte wesentlich schlechter aussieht(geringere Auflösung).Andere Anwendungen zeigen
    auch bei kleinsten Größen noch gestochen scharfe Icons ! Wie kann man das ändern ?
    Mittwoch, 28. Dezember 2011 13:29

Antworten

  • Hallo,

    Icon-Dateien sind eine Art Container und können verschiedenen Auflösungen bereitstellen,
    bis XP waren 48 x 48 Pixel üblich, mit Vista / WIndows 7 sind noch höhere Auflösungen möglich
    und auch die Farbtiefe wurde im Lauf der Zeit erhöht.

    Windows sucht sich daraus das der Anzeige passende heraus und interpoliert die geforderte Auflösung,
    wenn sie nicht vorhanden ist, was i. a. mit einem Schärfeverlust verbunden ist.

    Wenn Du wie oben selbst das Icon zeichnest, kann Genauigkeit verloren gehen,
    siehe auch die Beschreibung zu ExtractAssociatedIcon.
    Wobei die Methode ohnehin limitiert ist, da sie nur das erste Icon liefert, das Windows API kann dort mehr.

    Für eine umfassendere Lösung schau Dir z. B. mal an: .NET Icon Explorer

    Gruß Elmar

    Mittwoch, 28. Dezember 2011 14:38
    Beantworter