Использование ImageSharp каков наилучший способ преобразования входящего буфера, содержащего Bgra32, в изображение ImageSharp?

#c# #imagesharp

#c# #imagesharp

Вопрос:

Я получаю PixelFormats.Bgra32 изображения из UAP и WPF, и я хотел бы знать самый быстрый способ преобразовать их в и из SixLabors. Image<Rgba32> Изображения ImageSharp. Есть ли какая-то магия «mutate», которая может перевернуть байты пикселей после того, как я скопировал буфер с помощью TryGetSinglePixelSpan ?

Комментарии:

1. Мне любопытно, почему этот вопрос был закрыт. Я понимаю это и могу дать ответ.

2. @JamesSouth Люди, путающие «я не понимаю этот вопрос» с «этот вопрос неясен», к сожалению, являются здесь распространенной проблемой, и она только усугубилась с тех пор, как количество голосов было уменьшено.

3. Очень разочаровывает видеть.

Ответ №1:

Нет ярлыка для изменения существующего изображения, но вы можете создать новое с нужным вам пиксельным форматом с самого начала.

 Image<Rgba32> rgba;

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

Затем вы можете делать с Rgba32 изображением все, что вам нужно.