51 lines
2 KiB
C#
51 lines
2 KiB
C#
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
using JD.Core;
|
|
using JD.Core.Drawing;
|
|
using JD.Core.ProjectManaging;
|
|
using JD.LogService;
|
|
using JD.Timeline.View.Actions.Refactor;
|
|
using TeaBox;
|
|
using TeaBox.Macros;
|
|
using Directory = System.IO.Directory;
|
|
|
|
namespace DanceEditor.Source.Macros
|
|
{
|
|
//[Module]
|
|
class PictogramStatistics : TapeActionHandlerBase
|
|
{
|
|
[Macro]
|
|
public void PictogramWidth(IExecutionContext context)
|
|
{
|
|
float meanWidth = 0;
|
|
meanWidth = ComputePictogramWidth(Path.Combine(ProjectManager.Instance.CurrentProject.DataPath,@"World\Maps\Starships\Timeline\Pictos"));
|
|
meanWidth = ComputePictogramWidth(Path.Combine(ProjectManager.Instance.CurrentProject.DataPath, @"World\Maps\GetLucky\Timeline\Pictos"));
|
|
meanWidth = ComputePictogramWidth(Path.Combine(ProjectManager.Instance.CurrentProject.DataPath, @"World\Maps\GimmeGimmeOSC\Timeline\Pictos"));
|
|
meanWidth = ComputePictogramWidth(Path.Combine(ProjectManager.Instance.CurrentProject.DataPath, @"World\Maps\BlameIt\Timeline\Pictos"));
|
|
meanWidth = ComputePictogramWidth(Path.Combine(ProjectManager.Instance.CurrentProject.DataPath, @"World\Maps\KissYouSIX\Timeline\Pictos"));
|
|
context.LogMessage("Mean width: {0}", meanWidth);
|
|
}
|
|
|
|
private float ComputePictogramWidth(string pictoDir)
|
|
{
|
|
float meanWidth = 0;
|
|
int nbPictos = 0;
|
|
var files = Directory.EnumerateFiles(pictoDir, "*.png", SearchOption.AllDirectories).ToList();
|
|
foreach (var f in files)
|
|
{
|
|
Bitmap bitmap = ImageUtility.LoadBitmap(f);
|
|
if (bitmap.Width > 256)
|
|
{
|
|
Rectangle rect = ImageUtility.ComputeAlphaBorderlessBounds(bitmap, 200);
|
|
meanWidth += rect.Width;
|
|
nbPictos ++;
|
|
}
|
|
}
|
|
meanWidth = meanWidth / nbPictos;
|
|
return meanWidth;
|
|
}
|
|
}
|
|
}
|