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!

War es hilfreich?

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
scroll top