Changed streams to byte[]'s with new streams

This commit is contained in:
2021-08-31 12:40:47 +12:00
parent 34db81f143
commit a0af5286f8
3 changed files with 41 additions and 38 deletions
+24 -27
View File
@@ -16,13 +16,20 @@ using System.Windows.Shapes;
namespace RBG_Server.WPF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
// Global Styles etc
private static readonly SolidColorBrush borderBrush = new(Color.FromRgb(255, 0, 0));
GameServer gameServer;
MemoryStream gameBoard;
// Game board bytes
byte[] gameBoard;
public MainWindow()
{
InitializeComponent();
@@ -59,12 +66,13 @@ namespace RBG_Server.WPF
try
{
using FileStream fs = File.OpenRead(ImageSourceTextBox.Text);
gameBoard = new();
fs.CopyTo(gameBoard); // Load into memory, so the server can also utilise the stream
using MemoryStream ms = new();
fs.CopyTo(ms); // Load into memory, so the server can also utilise the stream
gameBoard = ms.ToArray();
BitmapImage gameBoardImage = new();
gameBoardImage.BeginInit();
gameBoardImage.StreamSource = gameBoard;
gameBoardImage.StreamSource = new MemoryStream(gameBoard, false);
//gameBoardImage.CacheOption = BitmapCacheOption.OnLoad; // Must preload the image into memory, before it is unloaded
gameBoardImage.EndInit();
PreviewImage.Source = gameBoardImage;
@@ -107,10 +115,12 @@ namespace RBG_Server.WPF
RedrawGrid();
}
}
/// <summary>
/// Draws the overlay grid, clearing existing elements if necessary
/// </summary>
private void RedrawGrid()
{
SolidColorBrush borderBrush = new(Color.FromRgb(255, 0, 0));
PreviewImageOverlay.RowDefinitions.Clear();
PreviewImageOverlay.ColumnDefinitions.Clear();
PreviewImageOverlay.Children.Clear();
@@ -149,7 +159,6 @@ namespace RBG_Server.WPF
Grid.SetColumn(border, u);
}
}
}
/// <summary>
@@ -184,6 +193,7 @@ namespace RBG_Server.WPF
Grid.SetRow(cells[i], i / PreviewImageOverlay.ColumnDefinitions.Count);
}
}
/// <summary>
/// Represents a cell on the board; as a grid
/// </summary>
@@ -236,20 +246,7 @@ namespace RBG_Server.WPF
{
//throw new NotImplementedException();
}
}
private void GenerateNewGameBoard(List<Player> players)
{
SolidColorBrush buttonBrush = new(Color.FromArgb(1, 255, 255, 255));
Grid[] cells = new Grid[PreviewImageOverlay.RowDefinitions.Count * PreviewImageOverlay.ColumnDefinitions.Count];
List<Player> unaddedPlayers = players;
for (int i = 0; i < cells.Length; i++)
{
}
}
}
private void Sliders_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
@@ -288,7 +285,7 @@ namespace RBG_Server.WPF
{
try
{
AnimatedBitmapImage animatedBitmap = new(new MemoryStream(loadedSprites[key]), p.PlayerSprite, Application.Current.Dispatcher);
AnimatedBitmapImage animatedBitmap = new(new MemoryStream(loadedSprites[key], false), p.PlayerSprite, Application.Current.Dispatcher);
}
catch
{
@@ -298,7 +295,7 @@ namespace RBG_Server.WPF
BitmapImage src = new();
src.BeginInit();
src.StreamSource = new MemoryStream(loadedSprites[key]);
src.StreamSource = new MemoryStream(loadedSprites[key],false);
src.EndInit();
pSprite = src;
}
@@ -318,7 +315,7 @@ namespace RBG_Server.WPF
// Scope & create the base data for pSprite
BitmapImage src = new();
src.BeginInit();
src.StreamSource = new MemoryStream(loadedSprites[key]);
src.StreamSource = new MemoryStream(loadedSprites[key], false);
src.EndInit();
pSprite = src;
}
@@ -395,7 +392,7 @@ namespace RBG_Server.WPF
_ = LoadedSprites.Children.Add(gifMedia);
*/
Image spriteImage = new();
RBG.Helpers.AnimatedBitmapImage animatedBitmap = new(new MemoryStream(item.Value), spriteImage, Application.Current.Dispatcher);
RBG.Helpers.AnimatedBitmapImage animatedBitmap = new(new MemoryStream(item.Value, false), spriteImage, Application.Current.Dispatcher);
_ = LoadedSprites.Children.Add(spriteImage);
}
catch
@@ -403,7 +400,7 @@ namespace RBG_Server.WPF
// On failed, use the cached data
BitmapImage image = new();
image.BeginInit();
image.StreamSource = new MemoryStream(item.Value);
image.StreamSource = new MemoryStream(item.Value, false);
image.EndInit();
Image spriteImage = new()
{
@@ -418,7 +415,7 @@ namespace RBG_Server.WPF
BitmapImage image = new();
image.BeginInit();
image.StreamSource = new MemoryStream(item.Value);
image.StreamSource = new MemoryStream(item.Value, false);
image.EndInit();
Image spriteImage = new()
{