From 1f3fa963535e9a46e89b8626fadfa3b7ea2718fc Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 28 Jul 2021 07:19:21 -0700 Subject: [PATCH] Moved "loadimage" to globalfuncs --- .../CharacterCustomizationShared.cs | 2 +- .../CharCustom/CustomizationFuncs.cs | 41 ++----------------- .../Compact/CharacterCustomizationCompact.cs | 2 +- .../CharacterCustomizationExtended.cs | 2 +- .../StorageAndFunctions/GlobalFuncs.cs | 35 ++++++++++++++++ .../Forms/SDK/ItemCreationSDK.cs | 6 +-- 6 files changed, 44 insertions(+), 44 deletions(-) diff --git a/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs b/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs index 7a98e37..ed8fc8e 100644 --- a/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs +++ b/Novetus/NovetusCore/CharCustom/CharacterCustomizationShared.cs @@ -232,7 +232,7 @@ class CharacterCustomizationShared FaceList.Items.Clear(); ExtraItemList.Items.Clear(); - Image icon1 = CustomizationFuncs.LoadImage(GlobalPaths.extradirIcons + "\\" + GlobalVars.UserConfiguration.PlayerName + ".png", GlobalPaths.extradir + "\\NoExtra.png"); + Image icon1 = GlobalFuncs.LoadImage(GlobalPaths.extradirIcons + "\\" + GlobalVars.UserConfiguration.PlayerName + ".png", GlobalPaths.extradir + "\\NoExtra.png"); IconImage.Image = icon1; break; diff --git a/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs b/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs index 7108183..e609d76 100644 --- a/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs +++ b/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs @@ -10,41 +10,6 @@ using System.Windows.Forms; #region Customization Functions class CustomizationFuncs { - //modified from the following: - //https://stackoverflow.com/questions/28887314/performance-of-image-loading - //https://stackoverflow.com/questions/2479771/c-why-am-i-getting-the-process-cannot-access-the-file-because-it-is-being-u - public static Image LoadImage(string fileFullName, string fallbackFileFullName = "") - { - if (string.IsNullOrWhiteSpace(fileFullName)) - return null; - - Image image = null; - - try - { - using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(fileFullName))) - { - image = Image.FromStream(ms); - } - - // PropertyItems seem to get lost when fileStream is closed to quickly (?); perhaps - // this is the reason Microsoft didn't want to close it in the first place. - PropertyItem[] items = image.PropertyItems; - - foreach (PropertyItem item in items) - { - image.SetPropertyItem(item); - } - } - catch (Exception) - { - if (!string.IsNullOrWhiteSpace(fallbackFileFullName)) - image = LoadImage(fallbackFileFullName); - } - - return image; - } - public static void ChangeItem(string item, string itemdir, string defaultitem, PictureBox outputImage, TextBox outputString, ListBox box, bool initial, bool hatsinextra = false) { ChangeItem(item, itemdir, defaultitem, outputImage, outputString, box, initial, null, hatsinextra); @@ -108,7 +73,7 @@ using System.Windows.Forms; } else { - outputImage.Image = LoadImage(itemdir + @"\\" + item.Replace(".rbxm", "") + ".png", itemdir + @"\\" + defaultitem + ".png"); + outputImage.Image = GlobalFuncs.LoadImage(itemdir + @"\\" + item.Replace(".rbxm", "") + ".png", itemdir + @"\\" + defaultitem + ".png"); } } @@ -123,9 +88,9 @@ using System.Windows.Forms; public static Image GetItemURLImageFromProvider(Provider provider) { if (provider != null) - return LoadImage(GlobalPaths.CustomPlayerDir + @"\\" + provider.Icon, GlobalPaths.extradir + @"\\NoExtra.png"); + return GlobalFuncs.LoadImage(GlobalPaths.CustomPlayerDir + @"\\" + provider.Icon, GlobalPaths.extradir + @"\\NoExtra.png"); - return LoadImage(GlobalPaths.extradir + @"\\NoExtra.png"); + return GlobalFuncs.LoadImage(GlobalPaths.extradir + @"\\NoExtra.png"); } //we launch the 3dview seperately from normal clients. diff --git a/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs b/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs index d918b62..79978a4 100644 --- a/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs +++ b/Novetus/NovetusCore/CharCustom/Forms/Compact/CharacterCustomizationCompact.cs @@ -997,7 +997,7 @@ public partial class CharacterCustomizationCompact : Form MessageBox.Show(icon.getInstallOutcome()); } - Image icon1 = CustomizationFuncs.LoadImage(GlobalPaths.extradirIcons + "\\" + GlobalVars.UserConfiguration.PlayerName + ".png", GlobalPaths.extradir + "\\NoExtra.png"); + Image icon1 = GlobalFuncs.LoadImage(GlobalPaths.extradirIcons + "\\" + GlobalVars.UserConfiguration.PlayerName + ".png", GlobalPaths.extradir + "\\NoExtra.png"); pictureBox10.Image = icon1; } #endregion diff --git a/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs b/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs index 8e06fff..75c0af5 100644 --- a/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs +++ b/Novetus/NovetusCore/CharCustom/Forms/Extended/CharacterCustomizationExtended.cs @@ -1000,7 +1000,7 @@ public partial class CharacterCustomizationExtended : Form MessageBox.Show(icon.getInstallOutcome()); } - Image icon1 = CustomizationFuncs.LoadImage(GlobalPaths.extradirIcons + "\\" + GlobalVars.UserConfiguration.PlayerName + ".png", GlobalPaths.extradir + "\\NoExtra.png"); + Image icon1 = GlobalFuncs.LoadImage(GlobalPaths.extradirIcons + "\\" + GlobalVars.UserConfiguration.PlayerName + ".png", GlobalPaths.extradir + "\\NoExtra.png"); pictureBox10.Image = icon1; } #endregion diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs index 8718402..0e9e377 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs @@ -570,6 +570,41 @@ public class GlobalFuncs File.SetAttributes(dest, FileAttributes.Normal); } + //modified from the following: + //https://stackoverflow.com/questions/28887314/performance-of-image-loading + //https://stackoverflow.com/questions/2479771/c-why-am-i-getting-the-process-cannot-access-the-file-because-it-is-being-u + public static Image LoadImage(string fileFullName, string fallbackFileFullName = "") + { + if (string.IsNullOrWhiteSpace(fileFullName)) + return null; + + Image image = null; + + try + { + using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(fileFullName))) + { + image = Image.FromStream(ms); + } + + // PropertyItems seem to get lost when fileStream is closed to quickly (?); perhaps + // this is the reason Microsoft didn't want to close it in the first place. + PropertyItem[] items = image.PropertyItems; + + foreach (PropertyItem item in items) + { + image.SetPropertyItem(item); + } + } + catch (Exception) + { + if (!string.IsNullOrWhiteSpace(fallbackFileFullName)) + image = LoadImage(fallbackFileFullName); + } + + return image; + } + public static string CopyMapToRBXAsset() { string clientcontentpath = GlobalPaths.ClientDir + @"\\" + GlobalVars.UserConfiguration.SelectedClient + @"\\content\\temp.rbxl"; diff --git a/Novetus/NovetusLauncher/Forms/SDK/ItemCreationSDK.cs b/Novetus/NovetusLauncher/Forms/SDK/ItemCreationSDK.cs index 990254f..1d22256 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/ItemCreationSDK.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/ItemCreationSDK.cs @@ -66,7 +66,7 @@ public partial class ItemCreationSDK : Form MessageBox.Show(icon.getInstallOutcome()); } - Image icon1 = CustomizationFuncs.LoadImage(icon.ItemDir + "\\" + icon.ItemName.Replace(" ", "") + ".png", ""); + Image icon1 = GlobalFuncs.LoadImage(icon.ItemDir + "\\" + icon.ItemName.Replace(" ", "") + ".png", ""); ItemIcon.Image = icon1; if (type == RobloxFileType.TShirt || type == RobloxFileType.Face) @@ -260,14 +260,14 @@ public partial class ItemCreationSDK : Form textbox.ReadOnly = !enable; textbox.Text = ""; button.Enabled = browseButton; - ItemIcon.Image = CustomizationFuncs.LoadImage("", ""); + ItemIcon.Image = GlobalFuncs.LoadImage("", ""); } private void ToggleGroup(GroupBox groupbox, string labelText, bool enable = true) { groupbox.Text = enable ? labelText : (string.IsNullOrWhiteSpace(labelText) ? "This option is disabled." : labelText); groupbox.Enabled = enable; - ItemIcon.Image = CustomizationFuncs.LoadImage("", ""); + ItemIcon.Image = GlobalFuncs.LoadImage("", ""); } private void ToggleHatMeshBox(string labelText, bool enable = true)