// // PictureObjectModelExtensions.cs - UWT extensions to PictureObjectModel // // Author: // Michael Becker // // Copyright (c) 2019-2020 Mike Becker's Software // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using MBS.Framework.Drawing; using MBS.Framework.UserInterface.Drawing; using UniversalEditor.ObjectModels.Multimedia.Picture; namespace UniversalEditor.Plugins.Multimedia.UserInterface { /// /// UWT extensions to . /// public static class PictureObjectModelExtensions { /// /// Converts the image data stored in the to a UWT that can be displayed onscreen. /// /// A UWT that can be displayed onscreen. /// The containing the image data to convert. public static Image ToImage(this PictureObjectModel pic) { byte[] input = pic.ToByteArray(); byte[] output = new byte[input.Length]; for (int i = 0; i < input.Length; i += 4) { byte b = input[i]; byte g = input[i + 1]; byte r = input[i + 2]; byte a = input[i + 3]; output[i] = r; output[i + 1] = g; output[i + 2] = b; output[i + 3] = a; } Image image = Image.FromBytes(output, pic.Width, pic.Height, pic.Stride); return image; } } }