diff --git a/src/Ryujinx.HLE/HOS/Services/Caps/CaptureManager.cs b/src/Ryujinx.HLE/HOS/Services/Caps/CaptureManager.cs index 3caea0f6c..f47c663ed 100644 --- a/src/Ryujinx.HLE/HOS/Services/Caps/CaptureManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Caps/CaptureManager.cs @@ -118,8 +118,11 @@ namespace Ryujinx.HLE.HOS.Services.Caps } // NOTE: The saved JPEG file doesn't have the limitation in the extra EXIF data. - using SKBitmap bitmap = new(new SKImageInfo(1280, 720, SKColorType.Rgba8888)); - Marshal.Copy(screenshotData, 0, bitmap.GetPixels(), screenshotData.Length); + using SKBitmap bitmap = new(new SKImageInfo(1280, 720, SKColorType.Rgba8888, SKAlphaType.Premul)); + int dataLen = screenshotData.Length > bitmap.ByteCount ? bitmap.ByteCount : screenshotData.Length; + + Marshal.Copy(screenshotData, 0, bitmap.GetPixels(), dataLen); + using SKData data = bitmap.Encode(SKEncodedImageFormat.Jpeg, 80); using FileStream file = File.OpenWrite(filePath); data.SaveTo(file);