Skip to content

Commit 1d6da66

Browse files
committed
Decreased memory usage by reading and display images using an RGB555 PixelFormat
1 parent 7d734f3 commit 1d6da66

File tree

3 files changed

+52
-4
lines changed

3 files changed

+52
-4
lines changed

WzVisualizer/GUI/Form1.Designer.cs

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

WzVisualizer/GUI/Form1.cs

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,13 +451,38 @@ private void BtnSave_Click(object sender, EventArgs e)
451451
}
452452
}
453453

454+
private void TabEquips_Selected(object sender, TabControlEventArgs e)
455+
{
456+
Tab_Selected(sender, e.TabPage);
457+
}
458+
459+
private void TabUse_Selected(object sender, TabControlEventArgs e)
460+
{
461+
Tab_Selected(sender, e.TabPage);
462+
}
463+
464+
private void TabSetup_Selected(object sender, TabControlEventArgs e)
465+
{
466+
Tab_Selected(sender, e.TabPage);
467+
}
468+
469+
private void TabControlMain_SelectedIndexChanged(object sender, EventArgs e)
470+
{
471+
TabPage root = TabControlMain.SelectedTab;
472+
object control = root.Controls[0];
473+
if (control is TabControl tab)
474+
Tab_Selected(sender, tab.SelectedTab);
475+
else
476+
Tab_Selected(sender, root);
477+
}
478+
454479
private void MainForm_Load(object sender, EventArgs e)
455480
{
456481
GridIOUtility.ImportGrid("equips/Hairs.bin", GridEHairs, AddGridRow);
457482
}
458483
#endregion
459484

460-
private void TabEquips_Selected(object sender, TabControlEventArgs e)
485+
private void Tab_Selected(object sender, TabPage tab)
461486
{
462487
FieldInfo[] fields = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
463488
foreach (FieldInfo field in fields)
@@ -468,8 +493,20 @@ private void TabEquips_Selected(object sender, TabControlEventArgs e)
468493
GC.Collect();
469494
GC.WaitForPendingFinalizers();
470495
}
471-
if (field.Name.Equals(e.TabPage.Name))
472-
GridIOUtility.ImportGrid(string.Format("equips/{0}.bin", e.TabPage.Text), (DataGridView)e.TabPage.Controls[0], AddGridRow);
496+
if (field.Name.Equals(tab.Name))
497+
{
498+
int mainSelectedIndex = TabControlMain.SelectedIndex;
499+
if (mainSelectedIndex == 0)
500+
GridIOUtility.ImportGrid(string.Format("Equips/{0}.bin", tab.Text), (DataGridView)tab.Controls[0], AddGridRow);
501+
else if (mainSelectedIndex == 1)
502+
GridIOUtility.ImportGrid(string.Format("Use/{0}.bin", tab.Text), (DataGridView)tab.Controls[0], AddGridRow);
503+
else if (mainSelectedIndex == 2)
504+
GridIOUtility.ImportGrid(string.Format("Setup/{0}.bin", tab.Text), (DataGridView)tab.Controls[0], AddGridRow);
505+
else if (mainSelectedIndex == 3)
506+
GridIOUtility.ImportGrid(string.Format("Etc/{0}.bin", tab.Text), (DataGridView)tab.Controls[0], AddGridRow);
507+
else if (mainSelectedIndex == 4)
508+
GridIOUtility.ImportGrid(string.Format("Cash/{0}.bin", tab.Text), (DataGridView)tab.Controls[0], AddGridRow);
509+
}
473510
}
474511
}
475512
}

WzVisualizer/IO/GridIOUtility.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,15 @@ private static void ReadFileContents(string path, ref List<BinData> datas)
3636
byte[] buffer = breader.ReadBytes(bufferLength);
3737
using (MemoryStream memStream = new MemoryStream(buffer))
3838
{
39-
binData.image = Image.FromStream(memStream);
39+
Image image = Image.FromStream(memStream);
40+
Bitmap bmp = new Bitmap(image.Width, image.Height, PixelFormat.Format16bppRgb555);
41+
bmp.MakeTransparent();
42+
using (var g = Graphics.FromImage(bmp))
43+
{
44+
g.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height));
45+
}
46+
image.Dispose();
47+
binData.image = bmp;
4048
}
4149
}
4250
string allProperties = "";

0 commit comments

Comments
 (0)