C# bitmap ist fehlerhaft?
Ich hab ein Program entwickelt, was anhand des Hash eines Strings ein 500x500 Pixel Identicon generiert.
Hier sind einpaar Beispiele:
Das Problem: die Bilder sind unrein.
Wenn man ganz genau guckt, und ranzoomt, sieht man, dass unreinheiten inform von ungewollten Pixeln und Farben auftauchen:
Aber eigentlich darf das ja nicht sein, da ich lediglich mit einer SolidColorBrush Vierecke zeichne. Wieso zur Hölle sind da diese ungewollten Pixel vorallem an den Rändern? Sehen wie Übergänge aus.
Erstellst Du die Icons mit einer verlustfreien Komprimierung wie PNG?
Ne jpg
2 Antworten
Das sind Kompressionsartefakte. Nutze PNG oder etwas anderes verlustfreies.
Ich sehe da eine „.jpg“-Endung. Bedenke, dass JPEG verlustbehaftet sein kann. (Es gibt zwar auch Modi, die verlustfrei sind. In der Regel würde ich jedoch erst einmal von einem verlustbehafteten Modus ausgehen, wenn du da nicht extra darauf geachtet hast.)
D.h. beim Komprimieren werden gewisse Ungenauigkeiten/Informationsverluste in Kauf genommen, um eine kleinere Dateigröße erreichen zu können. Dabei können dann solche Kompressionsartefakte auftreten.
Zumindest vermute ich sehr stark, dass dein Problem daran liegen könnte.
Evtl. wäre es eine Überlegung wert, gleich mit einem verlustfreien Bitmap-Grafikformat (beispielsweise PNG) zu arbeiten.