9

I get PixelFormats.Bgra32 images from UAP and WPF and I would like to know the fastest way to convert them to and from SixLabors.ImageSharp Image<Rgba32> images. Is there some magic "mutate" that can flip the pixel bytes after I've copied the buffer using TryGetSinglePixelSpan?

Konrad Kokosa
  • 16,563
  • 2
  • 36
  • 58
Chris
  • 1,101
  • 8
  • 13

1 Answers1

7

There's no shortcut for mutating an existing image but you can create a new one with the pixel format you need from the first.

Image<Rgba32> rgba;

// Load decodes
// LoadPixelData copies
// WrapMemory wraps
using (Image<Bgra32> bgra = Image.LoadPixelData<Bgra32>(...))
{
   rgba = bgra.CloneAs<Rgba32>(bgra.GetConfiguration());
}

You can then do whatever you need with the Rgba32 image.

huysentruitw
  • 27,376
  • 9
  • 90
  • 133
James South
  • 10,147
  • 4
  • 59
  • 115