diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index bd681979b8..5fb60303cf 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -315,6 +315,7 @@ namespace Ryujinx.Ava bitmapToSave = new SKBitmap(bitmap.Width, bitmap.Height); using var canvas = new SKCanvas(bitmapToSave); + canvas.Clear(SKColors.Transparent); float scaleX = e.FlipX ? -1 : 1; @@ -324,8 +325,7 @@ namespace Ryujinx.Ava canvas.SetMatrix(matrix); - SKPoint drawPosition = new SKPoint(e.FlipX ? -bitmap.Width : 0, e.FlipY ? -bitmap.Height : 0); - canvas.DrawBitmap(bitmap, drawPosition); + canvas.DrawBitmap(bitmap, new SKPoint(e.FlipX ? -bitmap.Width : 0, e.FlipY ? -bitmap.Height : 0)); } SaveBitmapAsPng(bitmapToSave ?? bitmap, path); @@ -345,6 +345,7 @@ namespace Ryujinx.Ava { using var data = bitmap.Encode(SKEncodedImageFormat.Png, 100); using var stream = File.OpenWrite(path); + data.SaveTo(stream); } diff --git a/src/Ryujinx/UI/Views/User/UserFirmwareAvatarSelectorView.axaml.cs b/src/Ryujinx/UI/Views/User/UserFirmwareAvatarSelectorView.axaml.cs index 8b74a3dd21..064b5e908b 100644 --- a/src/Ryujinx/UI/Views/User/UserFirmwareAvatarSelectorView.axaml.cs +++ b/src/Ryujinx/UI/Views/User/UserFirmwareAvatarSelectorView.axaml.cs @@ -68,8 +68,8 @@ namespace Ryujinx.Ava.UI.Views.User { using var streamJpg = new MemoryStream(); using var bitmap = SKBitmap.Decode(ViewModel.SelectedImage); - using var newBitmap = new SKBitmap(bitmap.Width, bitmap.Height); + using (var canvas = new SKCanvas(newBitmap)) { canvas.Clear(new SKColor( diff --git a/src/Ryujinx/UI/Views/User/UserProfileImageSelectorView.axaml.cs b/src/Ryujinx/UI/Views/User/UserProfileImageSelectorView.axaml.cs index bc1f485711..b4f23b5b86 100644 --- a/src/Ryujinx/UI/Views/User/UserProfileImageSelectorView.axaml.cs +++ b/src/Ryujinx/UI/Views/User/UserProfileImageSelectorView.axaml.cs @@ -110,6 +110,7 @@ namespace Ryujinx.Ava.UI.Views.User { using var image = SKImage.FromBitmap(resizedBitmap); using var dataJpeg = image.Encode(SKEncodedImageFormat.Jpeg, 100); + dataJpeg.SaveTo(streamJpg); } diff --git a/src/Ryujinx/UI/Windows/IconColorPicker.cs b/src/Ryujinx/UI/Windows/IconColorPicker.cs index 5f75d2fad7..39eb5df988 100644 --- a/src/Ryujinx/UI/Windows/IconColorPicker.cs +++ b/src/Ryujinx/UI/Windows/IconColorPicker.cs @@ -124,6 +124,7 @@ namespace Ryujinx.Ava.UI.Windows public static SKColor[] GetBuffer(SKBitmap image) { var pixels = new SKColor[image.Width * image.Height]; + for (int y = 0; y < image.Height; y++) { for (int x = 0; x < image.Width; x++) @@ -131,6 +132,7 @@ namespace Ryujinx.Ava.UI.Windows pixels[x + y * image.Width] = image.GetPixel(x, y); } } + return pixels; }