| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using Avalonia.Controls;
- using Avalonia.Interactivity;
- using FluentAvalonia.UI.Controls;
- using FluentAvalonia.UI.Navigation;
- using Ryujinx.Ava.UI.Controls;
- using Ryujinx.Ava.UI.Models;
- using Ryujinx.Ava.UI.ViewModels;
- using Ryujinx.HLE.FileSystem;
- using SixLabors.ImageSharp;
- using SixLabors.ImageSharp.Formats.Png;
- using SixLabors.ImageSharp.PixelFormats;
- using SixLabors.ImageSharp.Processing;
- using System.IO;
- namespace Ryujinx.Ava.UI.Views.User
- {
- public partial class UserFirmwareAvatarSelectorView : UserControl
- {
- private NavigationDialogHost _parent;
- private TempProfile _profile;
- public UserFirmwareAvatarSelectorView(ContentManager contentManager)
- {
- ContentManager = contentManager;
- DataContext = ViewModel;
- InitializeComponent();
- }
- public UserFirmwareAvatarSelectorView()
- {
- InitializeComponent();
- AddHandler(Frame.NavigatedToEvent, (s, e) =>
- {
- NavigatedTo(e);
- }, RoutingStrategies.Direct);
- }
- private void NavigatedTo(NavigationEventArgs arg)
- {
- if (Program.PreviewerDetached)
- {
- if (arg.NavigationMode == NavigationMode.New)
- {
- (_parent, _profile) = ((NavigationDialogHost, TempProfile))arg.Parameter;
- ContentManager = _parent.ContentManager;
- if (Program.PreviewerDetached)
- {
- ViewModel = new UserFirmwareAvatarSelectorViewModel();
- }
- DataContext = ViewModel;
- }
- }
- }
- public ContentManager ContentManager { get; private set; }
- internal UserFirmwareAvatarSelectorViewModel ViewModel { get; set; }
- private void GoBack(object sender, RoutedEventArgs e)
- {
- _parent.GoBack();
- }
- private void ChooseButton_OnClick(object sender, RoutedEventArgs e)
- {
- if (ViewModel.SelectedImage != null)
- {
- MemoryStream streamJpg = new();
- SixLabors.ImageSharp.Image avatarImage = SixLabors.ImageSharp.Image.Load(ViewModel.SelectedImage, new PngDecoder());
- avatarImage.Mutate(x => x.BackgroundColor(new Rgba32(
- ViewModel.BackgroundColor.R,
- ViewModel.BackgroundColor.G,
- ViewModel.BackgroundColor.B,
- ViewModel.BackgroundColor.A)));
- avatarImage.SaveAsJpeg(streamJpg);
- _profile.Image = streamJpg.ToArray();
- _parent.GoBack();
- }
- }
- }
- }
|