Moved to lib
This commit is contained in:
parent
9f9cf46c26
commit
7551c28bc5
8 changed files with 71 additions and 49 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -5,3 +5,6 @@
|
||||||
/LegoArt/obj
|
/LegoArt/obj
|
||||||
/LegoArt/bin/Debug/netcoreapp3.1
|
/LegoArt/bin/Debug/netcoreapp3.1
|
||||||
/.vs/LegoArt/v16/TestStore/0
|
/.vs/LegoArt/v16/TestStore/0
|
||||||
|
/.vs/LegoArt
|
||||||
|
/LegoArtTool/bin/Debug/netcoreapp3.1
|
||||||
|
/LegoArtTool/obj
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 16.0.30621.155
|
VisualStudioVersion = 16.0.30621.155
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegoArt", "LegoArt\LegoArt.csproj", "{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LegoArt", "LegoArt\LegoArt.csproj", "{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegoArtTool", "LegoArtTool\LegoArtTool.csproj", "{3FD681B9-FFDD-4906-B8C3-39B5EDAF3AD1}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
|
@ -15,6 +17,10 @@ Global
|
||||||
{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}.Release|Any CPU.Build.0 = Release|Any CPU
|
{1D754A7E-DB2F-4A79-83B8-BF64A7130CCC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3FD681B9-FFDD-4906-B8C3-39B5EDAF3AD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3FD681B9-FFDD-4906-B8C3-39B5EDAF3AD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3FD681B9-FFDD-4906-B8C3-39B5EDAF3AD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3FD681B9-FFDD-4906-B8C3-39B5EDAF3AD1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,8 @@
|
||||||
<PackageReference Include="System.Drawing.Common" Version="5.0.0" />
|
<PackageReference Include="System.Drawing.Common" Version="5.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\LegoArtTool\LegoArtTool.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Windows.Media;
|
|
||||||
|
|
||||||
namespace LegoArt
|
|
||||||
{
|
|
||||||
public class LegoColorService
|
|
||||||
{
|
|
||||||
public List<LegoColorInfo> LegoColors { get; private set; }
|
|
||||||
|
|
||||||
public LegoColorService()
|
|
||||||
{
|
|
||||||
LegoColors = new List<LegoColorInfo>();
|
|
||||||
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(0, 0, 0), 1, 698));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(102, 101, 96), 2, 141));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(167, 166, 162), 3, 51));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(246, 246, 248), 4, 149));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(0, 53, 94), 5, 121));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(101, 135, 162), 6, 52));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(121, 196, 236), 7, 57));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(253, 104, 0), 8, 74));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(255, 170, 0), 9, 65));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(229, 205, 135), 10, 283));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(163, 129, 93), 11, 137));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(196, 115, 54), 12, 29));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(206, 81, 0), 13, 85));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(119, 40, 0), 14, 250));
|
|
||||||
LegoColors.Add(new LegoColorInfo(Color.FromRgb(66, 23, 3), 15, 554));
|
|
||||||
}
|
|
||||||
|
|
||||||
public LegoColorInfo GetColorInfo(Color color)
|
|
||||||
{
|
|
||||||
return LegoColors.Single(l => l.Color == color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using Microsoft.Win32;
|
using LegoArtTool;
|
||||||
|
using Microsoft.Win32;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
@ -39,15 +40,14 @@ namespace LegoArt
|
||||||
for (int w = 0; w < width; w++)
|
for (int w = 0; w < width; w++)
|
||||||
{
|
{
|
||||||
var clr = bitmap.GetPixel(h, w);
|
var clr = bitmap.GetPixel(h, w);
|
||||||
var legoColor = ConvertDrawingToWindowsMediaColor(clr);
|
var legoColorInfo = legoColorService.GetColorInfo(clr);
|
||||||
var legoColorInfo = legoColorService.GetColorInfo(legoColor);
|
|
||||||
legoColorInfo.NeedCount++;
|
legoColorInfo.NeedCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parentStackPanel.Children.Clear();
|
parentStackPanel.Children.Clear();
|
||||||
|
|
||||||
AddLine(Colors.White, "Have", "Needed", "RGB", "#", "Difference", Colors.White);
|
AddLine(System.Drawing.Color.White, "Have", "Needed", "RGB", "#", "Difference", System.Drawing.Color.White);
|
||||||
|
|
||||||
var sortedColors = legoColorService.LegoColors.OrderBy(c => c.LegoNumber).ToList();
|
var sortedColors = legoColorService.LegoColors.OrderBy(c => c.LegoNumber).ToList();
|
||||||
for (int i = 0; i < sortedColors.Count; i++)
|
for (int i = 0; i < sortedColors.Count; i++)
|
||||||
|
|
@ -55,21 +55,22 @@ namespace LegoArt
|
||||||
var color = sortedColors[i].Color;
|
var color = sortedColors[i].Color;
|
||||||
var textRgb = $"{color.R};{color.G};{color.B}";
|
var textRgb = $"{color.R};{color.G};{color.B}";
|
||||||
var difference = sortedColors[i].HaveCount - sortedColors[i].NeedCount;
|
var difference = sortedColors[i].HaveCount - sortedColors[i].NeedCount;
|
||||||
var statusColor = difference < 0 ? Colors.Red : Colors.Green;
|
var statusColor = difference < 0 ? System.Drawing.Color.Red : System.Drawing.Color.Green;
|
||||||
AddLine(color, sortedColors[i].HaveCount.ToString(), sortedColors[i].NeedCount.ToString(), textRgb, sortedColors[i].LegoNumber.ToString(), difference.ToString(), statusColor);
|
AddLine(color, sortedColors[i].HaveCount.ToString(), sortedColors[i].NeedCount.ToString(), textRgb, sortedColors[i].LegoNumber.ToString(), difference.ToString(), statusColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
var have = legoColorService.LegoColors.Sum(l => l.HaveCount);
|
var have = legoColorService.LegoColors.Sum(l => l.HaveCount);
|
||||||
var needed = legoColorService.LegoColors.Sum(l => l.NeedCount);
|
var needed = legoColorService.LegoColors.Sum(l => l.NeedCount);
|
||||||
AddLine(Colors.White, have.ToString(), needed.ToString(), "Total:", "", "", Colors.White);
|
AddLine(System.Drawing.Color.White, have.ToString(), needed.ToString(), "Total:", "", "", System.Drawing.Color.White);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddLine(Color color, string textHave, string textNeed, string textRgb, string textNumber, string textDifference, Color statusColor)
|
private void AddLine(System.Drawing.Color color, string textHave, string textNeed, string textRgb, string textNumber, string textDifference, System.Drawing.Color statusColor)
|
||||||
{
|
{
|
||||||
|
var displayColor = ConvertDrawingToWindowsMediaColor(color);
|
||||||
var rect = new Rectangle();
|
var rect = new Rectangle();
|
||||||
rect.Width = 20;
|
rect.Width = 20;
|
||||||
rect.Height = 20;
|
rect.Height = 20;
|
||||||
rect.Fill = new SolidColorBrush(color);
|
rect.Fill = new SolidColorBrush(displayColor);
|
||||||
|
|
||||||
var textBlockHave = new TextBlock();
|
var textBlockHave = new TextBlock();
|
||||||
textBlockHave.Width = 40;
|
textBlockHave.Width = 40;
|
||||||
|
|
@ -101,10 +102,11 @@ namespace LegoArt
|
||||||
differenceTextBlock.TextAlignment = TextAlignment.Center;
|
differenceTextBlock.TextAlignment = TextAlignment.Center;
|
||||||
differenceTextBlock.Text = textDifference;
|
differenceTextBlock.Text = textDifference;
|
||||||
|
|
||||||
|
var displayStatusColor = ConvertDrawingToWindowsMediaColor(statusColor);
|
||||||
var status = new Rectangle();
|
var status = new Rectangle();
|
||||||
status.Width = 20;
|
status.Width = 20;
|
||||||
status.Height = 20;
|
status.Height = 20;
|
||||||
status.Fill = new SolidColorBrush(statusColor);
|
status.Fill = new SolidColorBrush(displayStatusColor);
|
||||||
|
|
||||||
var stackPanel = new StackPanel();
|
var stackPanel = new StackPanel();
|
||||||
stackPanel.Orientation = Orientation.Horizontal;
|
stackPanel.Orientation = Orientation.Horizontal;
|
||||||
|
|
|
||||||
7
LegoArtTool/LegoArtTool.csproj
Normal file
7
LegoArtTool/LegoArtTool.csproj
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
using System.Windows.Media;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace LegoArt
|
namespace LegoArtTool
|
||||||
{
|
{
|
||||||
public class LegoColorInfo
|
public class LegoColorInfo
|
||||||
{
|
{
|
||||||
37
LegoArtTool/LegoColorService.cs
Normal file
37
LegoArtTool/LegoColorService.cs
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
|
namespace LegoArtTool
|
||||||
|
{
|
||||||
|
public class LegoColorService
|
||||||
|
{
|
||||||
|
public List<LegoColorInfo> LegoColors { get; private set; }
|
||||||
|
|
||||||
|
public LegoColorService()
|
||||||
|
{
|
||||||
|
LegoColors = new List<LegoColorInfo>();
|
||||||
|
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(0, 0, 0), 1, 698));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(102, 101, 96), 2, 141));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(167, 166, 162), 3, 51));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(246, 246, 248), 4, 149));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(0, 53, 94), 5, 121));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(101, 135, 162), 6, 52));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(121, 196, 236), 7, 57));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(253, 104, 0), 8, 74));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(255, 170, 0), 9, 65));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(229, 205, 135), 10, 283));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(163, 129, 93), 11, 137));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(196, 115, 54), 12, 29));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(206, 81, 0), 13, 85));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(119, 40, 0), 14, 250));
|
||||||
|
LegoColors.Add(new LegoColorInfo(Color.FromArgb(66, 23, 3), 15, 554));
|
||||||
|
}
|
||||||
|
|
||||||
|
public LegoColorInfo GetColorInfo(Color color)
|
||||||
|
{
|
||||||
|
return LegoColors.Single(l => l.Color == color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue