Icon verliert beim Speichern Farbtiefe

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Icon verliert beim Speichern Farbtiefe

    Wenn ich Icons speichere, verlieren Sie deutlich an Farbtiefe!
    Im Programm angezeigt, werden sie wie gewohnt mit allen Farben angezeigt, nach dem Speichern nicht mehr!
    Ich verwende folgenden Code zum Speichern:

    VB.NET-Quellcode

    1. Public Sub SaveIcon(ByVal Path As String, AktuellesIcon As Icon)
    2. Using stream As New System.IO.FileStream(Path, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.Write)
    3. AktuellesIcon.Save(stream)
    4. End Using
    5. 'AktuellesIcon.ToBitmap.Save(Path, System.Drawing.Imaging.ImageFormat.Icon)
    6. ''Das funktioniert nicht, die Icons werden zwar auf dem Desktop richtig angezeigt (auch mit voller Farbtiefe!),
    7. ''aber ich kann die Icons nicht weiterverwenden. Wenn ich sie öffnen will, bekomme ich die Fehlermeldung:
    8. ''Falsches Dateiformat.
    9. End Sub
    Die Antwort liegt doch auf der Hand. Das ist ein Icon. Aber der Quelltext lautet .ToBitmap(). Du musst es mit der Icon-Klasse anders Behandeln

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mr. BlackStar“ ()

    Ein Icon hat per Dekret nur 15 Farben und eine für Transparenz.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    0Tto_XD schrieb:

    Wenn ichs vorher anzeige, hat es viel viel mehr Farben.
    Kann es sein, dass Du vorher eine Bitmap anzeigst?
    Durch die Konvertierung Deiner Bitmap in ein Icon passiert folgendes:

    RodFromGermany schrieb:

    Ein Icon hat per Dekret nur 15 Farben und eine für Transparenz.
    Versuch doch mal, in der Entwicklungsumgebung ein Icon und eine Bitmap zu zeichnen. Sieh Dir genau den Unterschied der von der Entwicklungsumgebung bereitgestellten Farben an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!