Eine Möglichkeit, Bitmapimage in Softwarebitmap umzuwandeln?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Eine Möglichkeit, Bitmapimage in Softwarebitmap umzuwandeln?

Post by Anonymous »

Ich habe eine Methode, die einen Unschärfeneffekt auf ein Bitmapimage anwendet, und ich möchte dieses Bild (als PNG) auf der Festplatte speichern. Ich habe alle möglichen Tricks ausprobiert, damit es funktioniert Dann speichern Sie das, was super klobig ist, aber es funktioniert. Ein SurfaceBrush visuell über den Compositor , aber ich dachte, ich könnte es konvertieren und dann speichern, da die Softwarebitmap eine Möglichkeit zum Schreiben auf die Festplatte bietet. Es wäre jedoch vorzuziehen, direkt ohne Konvertierungsschritt zu sparen. Dies ist eine der Konvertermethoden, die ich ausprobiert habe, aber es funktioniert nicht: < /p>

Code: Select all

     static async Task ConvertBitmapImageToSoftwareBitmapAsync(BitmapImage bitmapImage)
{
try
{
if (bitmapImage.PixelWidth == 0 || bitmapImage.PixelHeight == 0)
{
Debug.WriteLine($"[WARNING] The width and height are not valid.");
Debugger.Break();
}

InMemoryRandomAccessStream memoryStream = new InMemoryRandomAccessStream();
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, memoryStream);

// Create dummy SoftwareBitmap (since BitmapImage doesn't have direct pixel access)
SoftwareBitmap softwareBitmap = new SoftwareBitmap(BitmapPixelFormat.Bgra8, bitmapImage.PixelWidth, bitmapImage.PixelHeight, BitmapAlphaMode.Premultiplied);

encoder.SetSoftwareBitmap(softwareBitmap);
await encoder.FlushAsync();
return softwareBitmap;
}
catch (Exception ex)
{
Debug.WriteLine($"[ERROR] {ex.Message}");
return null;
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post