ARGB zu YUV && Farbräume in .NET
-
14-11-2019 - |
Frage
Ich bemerkte, dass Color
Struktur aus System.Drawing
stellt Farbe dar ARGB Farbraum.Es stellen sich also einige Fragen:
- Wie konvertiere ich ein Bild zwischen ARGB und YUV in c#?Ich habe Formeln gefunden, die die Konvertierung von RGB in YUV beschreiben.Was soll ich also mit dem Alphakanal machen?
- Gibt es kostenlose/Testbibliotheken, die verschiedene Farbräume unterstützen?Oder wie setze ich es selbst am besten um?
- Wie stelle ich „Bitmap“ als 2D-Array mit der Möglichkeit dar, darüber zu iterieren?Ist Vererbung der einzige Weg, dies zu erreichen?
Das ist schon alles)
Danke!
Lösung
Sie können argb nicht direkt (ohne Verlust) in YUV konvertieren, da YUV keine Alpha-Informationen enthält.
Je nachdem, was Sie mit der Farbe machen möchten, haben Sie folgende Möglichkeiten:
Sie schneiden einfach das Alpha ab und verwerfen die Transparenz
Sie konvertieren in ein Ayuv, das auch einen Alpha -Kanal enthält
Konvertierung zwischen Farbräumen
Eine Möglichkeit, eine Bitmap in ein Byte[] umzuwandeln, besteht darin, sie in einen Memorystream zu schreiben und sie bissweise zu lesen.
MemoryStream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Bmp);
byte[] data = stream.ToArray();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow