Я использую FileOpenPicker, чтобы позволить пользователям открывать ". Bmp" , ". Jpg" или ". PNG" .
Затем импортированное изображение требует преобразования пикселей, прежде чем оно сможет работать дальше с микроконтроллером, используя дисплей, работающий в 16 бит (формат RGB-565) .
Я пытаюсь преобразовать импортированное изображение, но ни один из типов BitmapPixelFormat не подходит для этого .. Я тоже не могу использовать System.Drawing.
Я пытался использовать SoftwareBitmap класс для преобразования импортированных изображений в формат Rbga8, но это так близко, как я получил.
Любая помощь приветствуется, спасибо заранее.
using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read))
{
BitmapImage bitmapImage = new BitmapImage();
await bitmapImage.SetSourceAsync(fileStream);
if (bitmapImage.PixelWidth <= 140 && bitmapImage.PixelHeight <= 190)
{
// Create the decoder from the stream
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(fileStream);
// Get the SoftwareBitmap representation of the file
SoftwareBitmap softwareBitmap = await decoder.GetSoftwareBitmapAsync();
SoftwareBitmap outputBitmap = SoftwareBitmap.Convert(softwareBitmap, BitmapPixelFormat.Rgba8, BitmapAlphaMode.Ignore);
SplashImage = bitmapImage;
}
else
{
DisplaySplashImageErrorDialog();
}
}