* (Add) Issue: EmptyLayer - Detects empty layers were image is all black with 0 pixels to cure
* (Add) Toolbar and pushed layer information to bottom
* (Add) Information: Cure pixel count per layer and percentage against total lcd pixels
* (Add) Information: Bounds per layer
* (Add) Zip: Compability with Formware zip files
This commit is contained in:
Tiago Conceição
2020-07-17 00:44:32 +01:00
parent fc83672a76
commit 9b9438dd40
14 changed files with 498 additions and 322 deletions
+8
View File
@@ -1,5 +1,13 @@
# Changelog
## 17/07/2020 - v0.6.2.3
* (Add) Issue: EmptyLayer - Detects empty layers were image is all black with 0 pixels to cure
* (Add) Toolbar and pushed layer information to bottom
* (Add) Information: Cure pixel count per layer and percentage against total lcd pixels
* (Add) Information: Bounds per layer
* (Add) Zip: Compability with Formware zip files
## 14/07/2020 - v0.6.2.2
* (Add) cbddlp, photon and ctb version 3 compability (Chitubox >= 1.6.5)
@@ -241,6 +241,17 @@ namespace UVtools.Core.FileFormats
tr.Close();
}
if (HeaderSettings.LayerCount == 0)
{
foreach (var zipEntry in inputFile.Entries)
{
if(!zipEntry.Name.EndsWith(".png")) continue;
var filename = Path.GetFileNameWithoutExtension(zipEntry.Name);
if (!filename.All(char.IsDigit)) continue;
if (!uint.TryParse(filename, out var layerIndex)) continue;
HeaderSettings.LayerCount = Math.Max(HeaderSettings.LayerCount, layerIndex);
}
}
LayerManager = new LayerManager(HeaderSettings.LayerCount);
@@ -282,6 +293,15 @@ namespace UVtools.Core.FileFormats
progress++;
}
if (HeaderSettings.LayerCount > 0 && ResolutionX == 0)
{
using (var mat = this[0].LayerMat)
{
HeaderSettings.ResolutionX = (uint)mat.Width;
HeaderSettings.ResolutionY = (uint)mat.Height;
}
}
entry = inputFile.GetEntry("preview.png");
if (!ReferenceEquals(entry, null))
{
+1 -1
View File
@@ -242,7 +242,7 @@ namespace UVtools.Core
using (var nonZeroMat = new Mat())
{
CvInvoke.FindNonZero(mat, nonZeroMat);
NonZeroPixelCount = (uint)nonZeroMat.Rows / 2;
NonZeroPixelCount = (uint)nonZeroMat.Height;
BoundingRectangle = CvInvoke.BoundingRectangle(nonZeroMat);
}
+1
View File
@@ -85,6 +85,7 @@ namespace UVtools.Core
Island,
ResinTrap,
TouchingBound,
EmptyLayer,
//HoleSandwich,
}
+141 -127
View File
@@ -684,149 +684,163 @@ namespace UVtools.Core
islandsFinished = true;
return;
}
// Detect contours
Parallel.ForEach(this,
//new ParallelOptions{MaxDegreeOfParallelism = 1},
layer =>
{
if (progress.Token.IsCancellationRequested) return;
using (var image = layer.LayerMat)
if (layer.NonZeroPixelCount > 0)
{
int step = image.Step;
var span = image.GetPixelSpan<byte>();
// TouchingBounds Checker
List<Point> pixels = new List<Point>();
for (int x = 0; x < image.Width; x++) // Check Top and Bottom bounds
using (var image = layer.LayerMat)
{
if (span[x] >= minTouchingBondsPixelColor) // Top
int step = image.Step;
var span = image.GetPixelSpan<byte>();
// TouchingBounds Checker
List<Point> pixels = new List<Point>();
for (int x = 0; x < image.Width; x++) // Check Top and Bottom bounds
{
pixels.Add(new Point(x, 0));
}
if (span[step * image.Height - step + x] >= minTouchingBondsPixelColor) // Bottom
{
pixels.Add(new Point(x, image.Height - 1));
}
}
for (int y = 0; y < image.Height; y++) // Check Left and Right bounds
{
if (span[y * step] >= minTouchingBondsPixelColor) // Left
{
pixels.Add(new Point(0, y));
}
if (span[y * step + step - 1] >= minTouchingBondsPixelColor) // Right
{
pixels.Add(new Point(step - 1, y));
}
}
if (pixels.Count > 0)
{
result.TryAdd(layer.Index, new List<LayerIssue>
{
new LayerIssue(layer, LayerIssue.IssueType.TouchingBound, pixels.ToArray())
});
}
if (layer.Index == 0) return; // No islands for layer 0
VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();
Mat hierarchy = new Mat();
if (islandConfig.BinaryThreshold > 0)
{
using (var thresholdImage = new Mat())
{
CvInvoke.Threshold(image, thresholdImage, 1, 255, ThresholdType.Binary);
CvInvoke.FindContours(thresholdImage, contours, hierarchy, RetrType.Ccomp,
ChainApproxMethod.ChainApproxSimple);
}
}
else
{
CvInvoke.FindContours(image, contours, hierarchy, RetrType.Ccomp,
ChainApproxMethod.ChainApproxSimple);
}
var arr = hierarchy.GetData();
//
//hierarchy[i][0]: the index of the next contour of the same level
//hierarchy[i][1]: the index of the previous contour of the same level
//hierarchy[i][2]: the index of the first child
//hierarchy[i][3]: the index of the parent
//
Mat previousImage = null;
Span<byte> previousSpan = null;
for (int i = 0; i < contours.Size; i++)
{
if ((int) arr.GetValue(0, i, 2) == -1 && (int) arr.GetValue(0, i, 3) != -1) continue;
var rect = CvInvoke.BoundingRectangle(contours[i]);
if (rect.GetArea() < islandConfig.RequiredAreaToProcessCheck)
continue;
if (ReferenceEquals(previousImage, null))
{
previousImage = this[layer.Index - 1].LayerMat;
previousSpan = previousImage.GetPixelSpan<byte>();
}
List<Point> points = new List<Point>();
uint pixelsSupportingIsland = 0;
using (Mat contourImage = image.CloneBlank())
{
CvInvoke.DrawContours(contourImage, contours, i, new MCvScalar(255), -1);
var contourImageSpan = contourImage.GetPixelSpan<byte>();
for (int y = rect.Y; y < rect.Bottom; y++)
if (span[x] >= minTouchingBondsPixelColor) // Top
{
for (int x = rect.X; x < rect.Right; x++)
{
int pixel = step * y + x;
if (span[pixel] < islandConfig.RequiredPixelBrightnessToProcessCheck)
continue; // Low brightness, ignore
if (contourImageSpan[pixel] != 255)
continue; // Not inside contour, ignore
pixels.Add(new Point(x, 0));
}
//if (CvInvoke.PointPolygonTest(contours[i], new PointF(x, y), false) < 0) continue; // Out of contour SLOW!
//Debug.WriteLine($"Layer: {layer.Index}, Coutour: {i}, X:{x} Y:{y}");
points.Add(new Point(x, y));
if (previousSpan[pixel] >= islandConfig.RequiredPixelBrightnessToSupport)
{
pixelsSupportingIsland++;
}
}
if (span[step * image.Height - step + x] >= minTouchingBondsPixelColor) // Bottom
{
pixels.Add(new Point(x, image.Height - 1));
}
}
if (points.Count == 0) continue;
if (pixelsSupportingIsland >= islandConfig.RequiredPixelsToSupport)
continue; // Not a island, bounding is strong, i think...
if (pixelsSupportingIsland > 0 && points.Count < islandConfig.RequiredPixelsToSupport &&
pixelsSupportingIsland >= Math.Max(1, points.Count / 2))
continue; // Not a island, but maybe weak bounding...
var issue = new LayerIssue(layer, LayerIssue.IssueType.Island, points.ToArray(), rect);
result.AddOrUpdate(layer.Index, new List<LayerIssue> {issue},
(layerIndex, list) =>
for (int y = 0; y < image.Height; y++) // Check Left and Right bounds
{
if (span[y * step] >= minTouchingBondsPixelColor) // Left
{
list.Add(issue);
return list;
});
}
pixels.Add(new Point(0, y));
}
contours.Dispose();
hierarchy.Dispose();
previousImage?.Dispose();
if (span[y * step + step - 1] >= minTouchingBondsPixelColor) // Right
{
pixels.Add(new Point(step - 1, y));
}
}
if (pixels.Count > 0)
{
result.TryAdd(layer.Index, new List<LayerIssue>
{
new LayerIssue(layer, LayerIssue.IssueType.TouchingBound, pixels.ToArray())
});
}
if (layer.Index == 0) return; // No islands for layer 0
VectorOfVectorOfPoint contours = new VectorOfVectorOfPoint();
Mat hierarchy = new Mat();
if (islandConfig.BinaryThreshold > 0)
{
using (var thresholdImage = new Mat())
{
CvInvoke.Threshold(image, thresholdImage, 1, 255, ThresholdType.Binary);
CvInvoke.FindContours(thresholdImage, contours, hierarchy, RetrType.Ccomp,
ChainApproxMethod.ChainApproxSimple);
}
}
else
{
CvInvoke.FindContours(image, contours, hierarchy, RetrType.Ccomp,
ChainApproxMethod.ChainApproxSimple);
}
var arr = hierarchy.GetData();
//
//hierarchy[i][0]: the index of the next contour of the same level
//hierarchy[i][1]: the index of the previous contour of the same level
//hierarchy[i][2]: the index of the first child
//hierarchy[i][3]: the index of the parent
//
Mat previousImage = null;
Span<byte> previousSpan = null;
for (int i = 0; i < contours.Size; i++)
{
if ((int) arr.GetValue(0, i, 2) == -1 && (int) arr.GetValue(0, i, 3) != -1)
continue;
var rect = CvInvoke.BoundingRectangle(contours[i]);
if (rect.GetArea() < islandConfig.RequiredAreaToProcessCheck)
continue;
if (ReferenceEquals(previousImage, null))
{
previousImage = this[layer.Index - 1].LayerMat;
previousSpan = previousImage.GetPixelSpan<byte>();
}
List<Point> points = new List<Point>();
uint pixelsSupportingIsland = 0;
using (Mat contourImage = image.CloneBlank())
{
CvInvoke.DrawContours(contourImage, contours, i, new MCvScalar(255), -1);
var contourImageSpan = contourImage.GetPixelSpan<byte>();
for (int y = rect.Y; y < rect.Bottom; y++)
{
for (int x = rect.X; x < rect.Right; x++)
{
int pixel = step * y + x;
if (span[pixel] < islandConfig.RequiredPixelBrightnessToProcessCheck)
continue; // Low brightness, ignore
if (contourImageSpan[pixel] != 255)
continue; // Not inside contour, ignore
//if (CvInvoke.PointPolygonTest(contours[i], new PointF(x, y), false) < 0) continue; // Out of contour SLOW!
//Debug.WriteLine($"Layer: {layer.Index}, Coutour: {i}, X:{x} Y:{y}");
points.Add(new Point(x, y));
if (previousSpan[pixel] >=
islandConfig.RequiredPixelBrightnessToSupport)
{
pixelsSupportingIsland++;
}
}
}
}
if (points.Count == 0) continue;
if (pixelsSupportingIsland >= islandConfig.RequiredPixelsToSupport)
continue; // Not a island, bounding is strong, i think...
if (pixelsSupportingIsland > 0 &&
points.Count < islandConfig.RequiredPixelsToSupport &&
pixelsSupportingIsland >= Math.Max(1, points.Count / 2))
continue; // Not a island, but maybe weak bounding...
var issue = new LayerIssue(layer, LayerIssue.IssueType.Island, points.ToArray(),
rect);
result.AddOrUpdate(layer.Index, new List<LayerIssue> {issue},
(layerIndex, list) =>
{
list.Add(issue);
return list;
});
}
contours.Dispose();
hierarchy.Dispose();
previousImage?.Dispose();
}
}
else
{
result.TryAdd(layer.Index, new List<LayerIssue>
{
new LayerIssue(layer, LayerIssue.IssueType.EmptyLayer)
});
}
lock (progress.Mutex)
+1 -1
View File
@@ -10,7 +10,7 @@
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
<Description>MSLA/DLP, file analysis, repair, conversion and manipulation</Description>
<Version>0.6.2.2</Version>
<Version>0.6.2.3</Version>
<Copyright>Copyright © 2020 PTRTECH</Copyright>
<PackageIcon>UVtools.png</PackageIcon>
<Platforms>AnyCPU;x64</Platforms>
+149 -72
View File
@@ -62,16 +62,26 @@
this.mainTable = new System.Windows.Forms.TableLayoutPanel();
this.scCenter = new System.Windows.Forms.SplitContainer();
this.pbLayer = new Cyotek.Windows.Forms.ImageBox();
this.tsLayerInfo = new System.Windows.Forms.ToolStrip();
this.tsLayerPreviewTime = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerResolution = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageZoom = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImagePanLocation = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator16 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageMouseLocation = new System.Windows.Forms.ToolStripLabel();
this.tsLayerImagePixelCount = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator17 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerBounds = new System.Windows.Forms.ToolStripLabel();
this.tsLayer = new System.Windows.Forms.ToolStrip();
this.tsLayerImageExport = new System.Windows.Forms.ToolStripSplitButton();
this.tsLayerImageExportFile = new System.Windows.Forms.ToolStripMenuItem();
this.tsLayerImageExportClipboard = new System.Windows.Forms.ToolStripMenuItem();
this.tsLayerResolution = new System.Windows.Forms.ToolStripLabel();
this.tsLayerImageRotate = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageLayerDifference = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerPreviewTime = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageHighlightIssues = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
@@ -82,10 +92,6 @@
this.tsLayerImageLayerOutlineEdgeDetection = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImagePixelEdit = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageZoom = new System.Windows.Forms.ToolStripLabel();
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
this.tsLayerImageMouseLocation = new System.Windows.Forms.ToolStripLabel();
this.pbLayers = new System.Windows.Forms.ProgressBar();
this.tabControlLeft = new System.Windows.Forms.TabControl();
this.tbpThumbnailsAndInfo = new System.Windows.Forms.TabPage();
@@ -189,6 +195,7 @@
this.scCenter.Panel1.SuspendLayout();
this.scCenter.Panel2.SuspendLayout();
this.scCenter.SuspendLayout();
this.tsLayerInfo.SuspendLayout();
this.tsLayer.SuspendLayout();
this.tabControlLeft.SuspendLayout();
this.tbpThumbnailsAndInfo.SuspendLayout();
@@ -521,6 +528,7 @@
// scCenter.Panel1
//
this.scCenter.Panel1.Controls.Add(this.pbLayer);
this.scCenter.Panel1.Controls.Add(this.tsLayerInfo);
this.scCenter.Panel1.Controls.Add(this.tsLayer);
//
// scCenter.Panel2
@@ -540,34 +548,144 @@
this.pbLayer.Name = "pbLayer";
this.pbLayer.PanMode = Cyotek.Windows.Forms.ImageBoxPanMode.Left;
this.pbLayer.ShowPixelGrid = true;
this.pbLayer.Size = new System.Drawing.Size(1228, 700);
this.pbLayer.Size = new System.Drawing.Size(1228, 675);
this.pbLayer.TabIndex = 7;
this.pbLayer.PanEnd += new System.EventHandler(this.pbLayer_PanEnd);
this.pbLayer.Zoomed += new System.EventHandler<Cyotek.Windows.Forms.ImageBoxZoomEventArgs>(this.pbLayer_Zoomed);
this.pbLayer.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.EventMouseDoubleClick);
this.pbLayer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pbLayer_MouseMove);
this.pbLayer.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pbLayer_MouseUp);
//
// tsLayerInfo
//
this.tsLayerInfo.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tsLayerInfo.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.tsLayerInfo.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsLayerPreviewTime,
this.toolStripSeparator6,
this.tsLayerResolution,
this.toolStripSeparator11,
this.tsLayerImageZoom,
this.toolStripSeparator8,
this.tsLayerImagePanLocation,
this.toolStripSeparator16,
this.tsLayerImageMouseLocation,
this.tsLayerImagePixelCount,
this.toolStripSeparator17,
this.tsLayerBounds});
this.tsLayerInfo.Location = new System.Drawing.Point(0, 700);
this.tsLayerInfo.Name = "tsLayerInfo";
this.tsLayerInfo.Size = new System.Drawing.Size(1228, 25);
this.tsLayerInfo.TabIndex = 8;
this.tsLayerInfo.Text = "tsLayerInfo";
//
// tsLayerPreviewTime
//
this.tsLayerPreviewTime.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerPreviewTime.Name = "tsLayerPreviewTime";
this.tsLayerPreviewTime.Size = new System.Drawing.Size(77, 22);
this.tsLayerPreviewTime.Text = "Preview Time";
this.tsLayerPreviewTime.ToolTipText = "Layer preview computation time";
//
// toolStripSeparator6
//
this.toolStripSeparator6.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25);
//
// tsLayerResolution
//
this.tsLayerResolution.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerResolution.Image = global::UVtools.GUI.Properties.Resources.resize_16x16;
this.tsLayerResolution.Name = "tsLayerResolution";
this.tsLayerResolution.Size = new System.Drawing.Size(79, 22);
this.tsLayerResolution.Text = "Resolution";
this.tsLayerResolution.ToolTipText = "Layer Resolution";
//
// toolStripSeparator11
//
this.toolStripSeparator11.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripSeparator11.Name = "toolStripSeparator11";
this.toolStripSeparator11.Size = new System.Drawing.Size(6, 25);
//
// tsLayerImageZoom
//
this.tsLayerImageZoom.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerImageZoom.Image = global::UVtools.GUI.Properties.Resources.search_16x16;
this.tsLayerImageZoom.Name = "tsLayerImageZoom";
this.tsLayerImageZoom.Size = new System.Drawing.Size(89, 22);
this.tsLayerImageZoom.Text = "Zoom: 100%";
this.tsLayerImageZoom.ToolTipText = "Layer image zoom level, use mouse scroll to zoom in/out into image\r\nCtrl + 0 to s" +
"cale to fit";
//
// toolStripSeparator8
//
this.toolStripSeparator8.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(6, 25);
this.toolStripSeparator8.Visible = false;
//
// tsLayerImagePanLocation
//
this.tsLayerImagePanLocation.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerImagePanLocation.Image = global::UVtools.GUI.Properties.Resources.cursor_16x16;
this.tsLayerImagePanLocation.Name = "tsLayerImagePanLocation";
this.tsLayerImagePanLocation.Size = new System.Drawing.Size(79, 22);
this.tsLayerImagePanLocation.Text = "{X=0, Y=0}";
this.tsLayerImagePanLocation.ToolTipText = "Image pan location";
this.tsLayerImagePanLocation.Visible = false;
//
// toolStripSeparator16
//
this.toolStripSeparator16.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripSeparator16.Name = "toolStripSeparator16";
this.toolStripSeparator16.Size = new System.Drawing.Size(6, 25);
//
// tsLayerImageMouseLocation
//
this.tsLayerImageMouseLocation.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerImageMouseLocation.Image = global::UVtools.GUI.Properties.Resources.pointer_16x16;
this.tsLayerImageMouseLocation.Name = "tsLayerImageMouseLocation";
this.tsLayerImageMouseLocation.Size = new System.Drawing.Size(79, 22);
this.tsLayerImageMouseLocation.Text = "{X=0, Y=0}";
this.tsLayerImageMouseLocation.ToolTipText = "Mouse over pixel location and pixel brightness";
//
// tsLayerImagePixelCount
//
this.tsLayerImagePixelCount.Image = global::UVtools.GUI.Properties.Resources.pixel_16x16;
this.tsLayerImagePixelCount.Name = "tsLayerImagePixelCount";
this.tsLayerImagePixelCount.Size = new System.Drawing.Size(65, 22);
this.tsLayerImagePixelCount.Text = "Pixels: 0";
this.tsLayerImagePixelCount.ToolTipText = "Number of pixels to cure on this layer image and the percetange of them against t" +
"otal lcd pixels";
//
// toolStripSeparator17
//
this.toolStripSeparator17.Name = "toolStripSeparator17";
this.toolStripSeparator17.Size = new System.Drawing.Size(6, 25);
//
// tsLayerBounds
//
this.tsLayerBounds.Image = global::UVtools.GUI.Properties.Resources.resize_16x16;
this.tsLayerBounds.Name = "tsLayerBounds";
this.tsLayerBounds.Size = new System.Drawing.Size(66, 22);
this.tsLayerBounds.Text = "Bounds:";
this.tsLayerBounds.ToolTipText = "Image bounds for this layer only, position and size";
//
// tsLayer
//
this.tsLayer.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.tsLayer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsLayerImageExport,
this.tsLayerResolution,
this.tsLayerImageRotate,
this.toolStripSeparator5,
this.tsLayerImageLayerDifference,
this.toolStripSeparator6,
this.tsLayerPreviewTime,
this.toolStripSeparator14,
this.tsLayerImageHighlightIssues,
this.toolStripSeparator7,
this.tsLayerImageLayerOutline,
this.toolStripSeparator9,
this.tsLayerImagePixelEdit,
this.toolStripSeparator8,
this.tsLayerImageZoom,
this.toolStripSeparator11,
this.tsLayerImageMouseLocation});
this.tsLayerImagePixelEdit});
this.tsLayer.Location = new System.Drawing.Point(0, 0);
this.tsLayer.Name = "tsLayer";
this.tsLayer.Size = new System.Drawing.Size(1228, 25);
@@ -605,14 +723,6 @@
this.tsLayerImageExportClipboard.Text = "To &Clipboard";
this.tsLayerImageExportClipboard.Click += new System.EventHandler(this.EventClick);
//
// tsLayerResolution
//
this.tsLayerResolution.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerResolution.Name = "tsLayerResolution";
this.tsLayerResolution.Size = new System.Drawing.Size(63, 22);
this.tsLayerResolution.Text = "Resolution";
this.tsLayerResolution.ToolTipText = "Layer Resolution";
//
// tsLayerImageRotate
//
this.tsLayerImageRotate.Checked = true;
@@ -644,20 +754,6 @@
" the white pixels the difference between previous and current layer.";
this.tsLayerImageLayerDifference.Click += new System.EventHandler(this.EventClick);
//
// toolStripSeparator6
//
this.toolStripSeparator6.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25);
//
// tsLayerPreviewTime
//
this.tsLayerPreviewTime.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.tsLayerPreviewTime.Name = "tsLayerPreviewTime";
this.tsLayerPreviewTime.Size = new System.Drawing.Size(77, 22);
this.tsLayerPreviewTime.Text = "Preview Time";
this.tsLayerPreviewTime.ToolTipText = "Layer Resolution";
//
// toolStripSeparator14
//
this.toolStripSeparator14.Name = "toolStripSeparator14";
@@ -744,33 +840,6 @@
"e pixel)\r\nRed pixels are removed pixels\r\nGreen pixels are added pixels";
this.tsLayerImagePixelEdit.Click += new System.EventHandler(this.EventClick);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(6, 25);
//
// tsLayerImageZoom
//
this.tsLayerImageZoom.Image = global::UVtools.GUI.Properties.Resources.search_16x16;
this.tsLayerImageZoom.Name = "tsLayerImageZoom";
this.tsLayerImageZoom.Size = new System.Drawing.Size(89, 22);
this.tsLayerImageZoom.Text = "Zoom: 100%";
this.tsLayerImageZoom.ToolTipText = "Layer image zoom level, use mouse scroll to zoom in/out into image\r\nCtrl + 0 to s" +
"cale to fit";
//
// toolStripSeparator11
//
this.toolStripSeparator11.Name = "toolStripSeparator11";
this.toolStripSeparator11.Size = new System.Drawing.Size(6, 25);
//
// tsLayerImageMouseLocation
//
this.tsLayerImageMouseLocation.Image = global::UVtools.GUI.Properties.Resources.pointer_16x16;
this.tsLayerImageMouseLocation.Name = "tsLayerImageMouseLocation";
this.tsLayerImageMouseLocation.Size = new System.Drawing.Size(79, 22);
this.tsLayerImageMouseLocation.Text = "{X=0, Y=0}";
this.tsLayerImageMouseLocation.ToolTipText = "Mouse over pixel location and pixel brightness";
//
// pbLayers
//
this.pbLayers.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -1892,6 +1961,8 @@
this.scCenter.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.scCenter)).EndInit();
this.scCenter.ResumeLayout(false);
this.tsLayerInfo.ResumeLayout(false);
this.tsLayerInfo.PerformLayout();
this.tsLayer.ResumeLayout(false);
this.tsLayer.PerformLayout();
this.tabControlLeft.ResumeLayout(false);
@@ -1972,7 +2043,6 @@
private System.Windows.Forms.ToolStripMenuItem menuFileSave;
private System.Windows.Forms.ToolStripMenuItem menuFileSaveAs;
private System.Windows.Forms.ToolStrip tsLayer;
private System.Windows.Forms.ToolStripLabel tsLayerResolution;
private System.Windows.Forms.TabControl tabControlLeft;
private System.Windows.Forms.TabPage tbpThumbnailsAndInfo;
private System.Windows.Forms.SplitContainer scLeft;
@@ -2002,13 +2072,9 @@
private System.Windows.Forms.ToolStripButton tsLayerImageRotate;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripButton tsLayerImageLayerDifference;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
private System.Windows.Forms.ToolStripLabel tsLayerPreviewTime;
private Cyotek.Windows.Forms.ImageBox pbLayer;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
private System.Windows.Forms.ToolStripLabel tsLayerImageZoom;
private System.Windows.Forms.ToolStripButton tsLayerImagePixelEdit;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
private System.Windows.Forms.ToolStripMenuItem menuMutate;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
@@ -2022,8 +2088,6 @@
private System.Windows.Forms.ColumnHeader lvIssuesCount;
private System.Windows.Forms.ColumnHeader lvIssuesXY;
private System.Windows.Forms.ColumnHeader lvIssuesPixels;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
private System.Windows.Forms.ToolStripLabel tsLayerImageMouseLocation;
private System.Windows.Forms.ColumnHeader lvIssuesLayerHeader;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
private System.Windows.Forms.ToolStripButton tsIssueRemove;
@@ -2102,6 +2166,19 @@
private System.Windows.Forms.NumericUpDown nmPixelEditorDrainHoleDiameter;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.ToolStripButton btnPixelHistoryRemove;
private System.Windows.Forms.ToolStrip tsLayerInfo;
private System.Windows.Forms.ToolStripLabel tsLayerImageMouseLocation;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator11;
private System.Windows.Forms.ToolStripLabel tsLayerImageZoom;
private System.Windows.Forms.ToolStripLabel tsLayerPreviewTime;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
private System.Windows.Forms.ToolStripLabel tsLayerResolution;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
private System.Windows.Forms.ToolStripLabel tsLayerImagePanLocation;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator16;
private System.Windows.Forms.ToolStripLabel tsLayerImagePixelCount;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator17;
private System.Windows.Forms.ToolStripLabel tsLayerBounds;
}
}
+29 -2
View File
@@ -1503,6 +1503,7 @@ namespace UVtools.GUI
private void pbLayer_Zoomed(object sender, Cyotek.Windows.Forms.ImageBoxZoomEventArgs e)
{
tsLayerImageZoom.Text = $"Zoom: {e.NewZoom}% ({e.NewZoom/100f}x)";
pbLayer_PanEnd(pbLayer, null);
}
private void pbLayer_MouseUp(object sender, MouseEventArgs e)
@@ -1563,7 +1564,7 @@ namespace UVtools.GUI
ShowLayer(issue.Layer.Index);
}
if (issue.Type == LayerIssue.IssueType.TouchingBound)
if (issue.Type == LayerIssue.IssueType.TouchingBound || issue.Type == LayerIssue.IssueType.EmptyLayer || (issue.X == -1 && issue.Y == -1))
{
ZoomToFit();
}
@@ -1579,7 +1580,7 @@ namespace UVtools.GUI
x = ActualLayerImage.Height - 1 - issue.Y;
y = issue.X;
}
pbLayer.ZoomToRegion(x, y, 5, 5);
pbLayer.ZoomOut(true);
}
@@ -1679,6 +1680,10 @@ namespace UVtools.GUI
{
item.Enabled = false;
}
foreach (ToolStripItem item in tsLayerInfo.Items)
{
item.Enabled = false;
}
foreach (ToolStripItem item in tsProperties.Items)
{
item.Enabled = false;
@@ -1688,6 +1693,10 @@ namespace UVtools.GUI
item.Enabled = false;
}
tsLayerImagePixelCount.Text = "Pixels: 0";
tsLayerBounds.Text = "Bounds:";
tsLayerImageMouseLocation.Text = "{X=0, Y=0}";
tsThumbnailsResolution.Text =
tsLayerPreviewTime.Text =
tsLayerResolution.Text =
@@ -1887,6 +1896,10 @@ namespace UVtools.GUI
{
item.Enabled = true;
}
foreach (ToolStripItem item in tsLayerInfo.Items)
{
item.Enabled = true;
}
foreach (ToolStripItem item in tsProperties.Items)
{
item.Enabled = true;
@@ -2312,6 +2325,15 @@ namespace UVtools.GUI
byte percent = (byte)((layerNum + 1) * 100 / SlicerFile.LayerCount);
float pixelPercent = (float) Math.Round(layer.NonZeroPixelCount * 100f / (SlicerFile.ResolutionX * SlicerFile.ResolutionY), 2);
tsLayerImagePixelCount.Text = $"Pixels: {layer.NonZeroPixelCount} ({pixelPercent}%)";
tsLayerBounds.Text = $"Bounds: {layer.BoundingRectangle}";
tsLayerImagePixelCount.Invalidate();
tsLayerBounds.Invalidate();
tsLayerInfo.Update();
tsLayerInfo.Refresh();
watch.Stop();
tsLayerPreviewTime.Text = $"{watch.ElapsedMilliseconds}ms";
@@ -3082,5 +3104,10 @@ namespace UVtools.GUI
MaximumPixelBrightnessToDrain = Settings.Default.ResinTrapMaximumPixelBrightnessToDrain
};
}
private void pbLayer_PanEnd(object sender, EventArgs e)
{
//tsLayerImagePanLocation.Text = $"{pbLayer.AutoScrollPosition}";
}
}
}
+96 -81
View File
@@ -123,15 +123,12 @@
<metadata name="statusBar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>100, 17</value>
</metadata>
<metadata name="tsLayerInfo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1312, 17</value>
</metadata>
<metadata name="tsLayer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>201, 17</value>
</metadata>
<metadata name="tsThumbnails.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>291, 17</value>
</metadata>
<metadata name="tsProperties.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>649, 17</value>
</metadata>
<metadata name="tsGCode.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>551, 17</value>
</metadata>
@@ -148,83 +145,101 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA+
EQAAAk1TRnQBSQFMAgEBBQEAAVgBBQFYAQUBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIC4AAxgBIgMwAUsDMAFMAzIBUOgAAyIBMQNWAbkDXQHiARoBHQEYAf8BGgEd
ARgB/wEqAS0BKAH+A1MBrANNAZUDAAEB2AADIQEwA1kB7AErAS4BKQH6AkQBQgH3AUoBTAFIAfQDUwHx
AUMBRQFBAfYDQQH5ARoBHQEYAf8DTwGbAwABAdAAAxwBKANZAesBKgEtASgB/gNWAbYDTAGSA0gBhQNI
AYUDRgGAA0gBhQEqAS0BKAH+ARoBHQEYAf8DTgGU0AADJgE4ASoBLQEoAf4DTAGTA0sBkANNAZYDSgGL
A0UBfwNDAXgDQwF4A0cBggM+AfgDUwGw0AADXAHUARoBHQEYAf8DUQGgA04BmANQAZ8DOgFhAzgBXQNC
AXQDRgGAA0gBhANMAZMDWAHjAzABTMgAAzYBWQNAAXADWQHXA0cBggNMAZMDSQGJAwEBAgQAAzABSwNE
AXkDSAGHA0sBkANXAegDMAFMyAADLQFGAzgBXgNKAY0DEgEYA1ABoxAAAykBPgNLAZADTQGVA1kB7AMw
AUzIAAMUARwDMAFNA08BnANRAaIDUwGwEAADKwFDA08BmwNQAZ4DVgG7AxUBHcgAA0QBeQM/AW4DKgFA
Ax4BKwMqAUADVQGxAwQBBQQAAzkBYANMAZIDTgGUA1YBtgNWAbjIAAM/AW0DLgFIAxoBJAMlATcDIQEw
ASsBLAErAUMDLAFEA0gBiANIAYUDSAGHA0kBiQNQAZoDWAHpAycBOsgAAwYBCAMKAQ0DUwGwAyoBQANC
AXUDFAEcAzUBWANEAXwDTgGUA0QBfANIAYgDTgHwAycBO8gAAwcBCQNVAbQDCQEMBAADQQFzAyoBQQNC
AXYDPAFnA1EBpwNaAcoDWwHWAyQBNgMfAS3QAAMBAQIDUwGsAw4BEwM7AWUEAAMwAU0DBwEJAwQBBeQA
Az8BbgMGAQgDMQFPAwMBBANTAbDsAAMxAU8DAQEC/wA1AANQAaMDUgGpA1IBqQNSAakDUgGpA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUAGjXAADFQEdAUICWQH1AVECbQH3A0MBdwNbAcgCQgFZ
AfUCWAFfAeMDSgGMAwoBDQQAA1UBtANZAccDLwFJAwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMc
AScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqTAAA1IBqRAAAycBOgMwAUwDMAFMAzABTAMwAUwDMAFM
AzABTAMwAUwDMAFMAycBOhQAAwUBBwNMAZIBVgJYAcEDFQEdAz0BaQEAAcgB8wH/AQABkAHmAf8CBgHc
Af8CBgHdAf8COwHjAf8CEQHeAf8CBgHdAf8CWAFbAcsDBgEIAwAB/wMAAf8DQwF3AykBPgMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AzIBUQQAA1IBqQQAA1ABnQNTAaoDUwGq
A1MBqgNTAaoDUwGqA1MBqgNQAZ0MAANSAakQAANOAfsDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wNOAfsUAAEwAjEBTQEAAckB8wH/AQAByQH0Af8BWQJgAesBWwJeAdkBAAHAAfEB/wEHAQ8B3wH/
AgkB4AH/AgkB4AH/AkIB6QH/AhQB4gH/AgkB4AH/AgkB4AH/A0ABcQNRAaIDVgG2AyoBQAQAAxABFQMR
ARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMQARYIAANSAakEAANQAZ0DUwGqA1MBqgMf
ASwcAANSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADBwEKAVkCZwHy
AQABygH0Af8BAAHKAfQB/wEAAcoB9AH/AQABoQHuAf8CDAHjAf8CDAHjAf8CDAHjAf8CqQHvAf8CEwHj
Af8CDAHjAf8CDAHjAf8CVgFYAbkDCgEOAxEBFwMAAQE4AANSAakwAANSAakTAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADFQEdAz0BaQM6AWIBXAJgAdQBAAHLAfUB/wEAAcsB9QH/
AQABywH1Af8BAAGgAfAB/wIPAeYB/wIPAeYB/wIPAeYB/wLCAfYB/wInAegB/wIPAeYB/wIPAeYB/wJX
AVkBvwNSAfQDAAH/Az4BbAMOARMDQgF2A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3
A0IBdgMUARsEAANSAakDIgEyA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQMi
ATIDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAAUsCTAGQAQABywH2
Af8BAAHLAfYB/wEAAcsB9gH/AQABywH2Af8BKQFWAWYB+gNDAXgDIgEyAksBYAH7AhIB6QH/AhIB6QH/
As0B+AH/AjYB7QH/AhIB6QH/AhIB6QH/A1ABngMAAf4DAAH/A0MBdwMeASsDVwHFA1kBxwNZAccDWQHH
A1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1gBxgMmATkEAANSAakDNAFVAzQBVSAAAzQBVQM0AVUDUgGp
EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1EBoAEAAcwB9wH/AQABzAH3
Af8BAAHMAfcB/wEAAcwB9wH/A0MBdwgAA0oBjQIVAewB/wIVAewB/wIxAe8B/wIZAewB/wIVAewB/wER
ASIB7QH/AVICUwGoAzMBUwM8AWcDFAEcOAADUgGpAzQBVQM0AVUDRgGAA1IBqQNSAakDUgGpA1IBqQNS
AakDUgGpA0UBfwM0AVUDNAFVA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8PAAEBAT8CQAFvAT4CXAH4AQABzQH3Af8BAAHNAfcB/wMSARgIAAMBAQIDRgF+AlIBXQHwAhgB7gH/
ARgBGQHuAf8CQAGoAf0BRQJGAX4DAwEEAzMBUwM8AWcDFAEcOAADUgGpAzQBVQM0AVUDPwFuAzIBUBAA
AycBOwNEAXwDNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
DwABAQE/AkABbwE+AlwB+AEAAc4B+AH/AQABzgH4Af8DEgEYEAADFwEgAQABvAH3Af8BAAHEAfcB/wFA
AqgB/QFFAkYBfgMDAQQDAAH+AwAB/wNDAXcDHwEsA1cBxQNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZ
AccDWQHHA1kBxwNYAcYDJgE5BAADUgGpAzQBVQM0AVUDBQEHA1UBtQMRARcDUgGpAykBPgQAA1ABnwMR
ARcDNAFVAzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUQGg
AQABzgH4Af8BAAHPAfkB/wEAAc8B+QH/AQABzwH5Af8DQwF3EAADRAF6AQABzwH5Af8BAAHPAfkB/wEA
Ac8B+QH/AQABzgH4Af8BUgJTAagDUgH0AwAB/wM+AWwDDgETA0IBdQNDAXcDQwF3A0MBdwNDAXcDQwF3
A0MBdwNDAXcDQwF3A0MBdwNDAXcDFAEbBAADUgGpAzQBVQM0AVUEAAM8AWgDVgG+AyMBNANVAbUDEgEZ
A1EBoAQAAzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB3wwA
AUsCTAGQAQAB0AH6Af8BAAHQAfoB/wEAAdAB+gH/AQAB0AH6Af8BKQFWAWYB+gNDAXgDEgEZAxMBGgNE
AXoBKAFfAWcB+wEAAdAB+gH/AQAB0AH6Af8BAAHQAfoB/wEAAdAB+gH/A0oBjAMKAQ4DEQEXAwABATgA
A1IBqQM0AVUDNAFVAwABAQMtAUYDCgEOBAADOQFfA1wBzgMoATwEAAM0AVUDNAFVA1IBqRMAAf8DggH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB3wMXASAMAAMVAR0DPQFpAzoBYgFcAmAB1AEAAdEB+gH/
AQAB0QH6Af8BAAHQAfoB/wEAAcsB8wH/AQABywHzAf8BAAHQAfoB/wEAAdEB+gH/AQAB0QH6Af8BXQJh
AeIDOgFiAz0BaQMUARwDUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEX
AxEBFwMRARcDEAEWCAADUgGpAzQBVQM0AVUDMwFTA1IBpgNKAYwHAAEBA0cBgwgAAzQBVQM0AVUDUgGp
EwAB/wOZAf8DhQH/AwAB/wMAAf8DAAH/AwAB/wNcAd8DFwEgGAADBwEKAVkCZwHyAQAB0gH7Af8BAAHS
AfsB/wEAAdIB+wH/AQAB0gH7Af8BAAHSAfsB/wEAAdIB+wH/AQAB0gH7Af8BAAHSAfsB/wErAV8BZwH7
AxEBFwsAAf8DAAH/A0MBdwMpAT4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMyAVEEAANSAakDNAFVAzQBVQMRARcDUAGeAyQBNhQAAzQBVQM0AVUDUgGpEAADUAH7AwAB/wMA
Af8DAAH/AwAB/wMAAf8DXAHfAxcBIBwAATACMQFNAQAB0gH8Af8BAAHSAfwB/wFZAmAB6wFbAl4B2QEA
AdIB/AH/AQAB0gH8Af8BWwJhAeEBXQJhAeIBAAHSAfwB/wEAAdIB/AH/AzgBXggAA1UBtANZAccDLwFJ
AwABAQMbASYDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAwIBAwQAA1IBqQMi
ATIDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakQAAMgAS4DKQE/
AykBPwMpAT8DKQE/AykBPwMRARcgAAMFAQcDTAGSAVYCWAHBAxUBHQM9AWkBAAHTAfwB/wEAAdMB/AH/
AUUCRgF/AxABFQNWAbMBSwJMAY8DBAEGTAADUAGjA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNS
AakDUgGpA1IBqQNSAakDUgGpA1ABo1wAAxUBHQFCAlkB9QFRAm0B9wMgAS8YAAFCAU0BPgcAAT4DAAEo
AwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAB/gEfBgAB+AEDBgAB8AEBBgAB4AEBBgAB4AEBBgAB4AcA
AcABQAYAAcEB4AYAAcEB4AYAAcABQQYAAYABAQYAAYABAwYAARABBwYAAYQBfwYAAcEB/wYAAc8B/wYA
Av8BgAEBAv8B/AEBAgABvwH9AeABBwHAAwABoAEdAeABBwHAAQABEAEBAaEB/QHgAQcBwAEAAR8B/wG/
Af0B4AEHBAABgAEBAeABBwQAAY8B8QHgAQcBAwEAAR8B/wGAAQEB4AEHAQMBAAEfAf8BgwHBAeABBwED
AcACAAGAAUEB4AEHAQMBwAIAAYgBEQHgAQcCAAEfAf8BgQERAeABBwIAARABAQGBATEB4AEPAcABAwIA
AYEB8QHgAR8BwAEDAgABgAEBAeABPwHAAQMC/wGAAQEC/wH8AT8L
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAw
EQAAAk1TRnQBSQFMAgEBBQEAAagBBQGoAQUBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIC4AAxgBIgMwAUsDMAFMAzIBUOgAAyIBMQNWAbkDXQHiARABEwEOAf8BEAET
AQ4B/wEqAS0BKAH+A1MBrANNAZUDAAEB2AADIQEwA1kB7AErAS4BKQH6A1EB9wNSAfQDUwHxA0gB9gNB
AfkBEAETAQ4B/wNPAZsDAAEB0AADHAEoA1kB6wEqAS0BKAH+A1YBtgNMAZIDSAGFA0gBhQNGAYADSAGF
ASoBLQEoAf4BEAETAQ4B/wNOAZTQAAMmATgBKgEtASgB/gNMAZMDSwGQA00BlgNKAYsDRQF/A0MBeAND
AXgDRwGCAz4B+ANTAbDQAANcAdQBEAETAQ4B/wNRAaADTgGYA1ABnwM6AWEDOAFdA0IBdANGAYADSAGE
A0wBkwNYAeMDMAFMyAADNgFZA0ABcANZAdcDRwGCA0wBkwNJAYkDAQECBAADMAFLA0QBeQNIAYcDSwGQ
A1cB6AMwAUzIAAMtAUYDOAFeA0oBjQMSARgDUAGjEAADKQE+A0sBkANNAZUDWQHsAzABTMgAAxQBHAMw
AU0DTwGcA1EBogNTAbAQAAMrAUMDTwGbA1ABngNWAbsDFQEdyAADRAF5Az8BbgMqAUADHgErAyoBQANV
AbEDBAEFBAADOQFgA0wBkgNOAZQDVgG2A1YBuMgAAz8BbQMuAUgDGgEkAyUBNwMhATABKwEsASsBQwMs
AUQDSAGIA0gBhQNIAYcDSQGJA1ABmgNYAekDJwE6yAADBgEIAwoBDQNTAbADKgFAA0IBdQMUARwDNQFY
A0QBfANOAZQDRAF8A0gBiANOAfADJwE7yAADBwEJA1UBtAMJAQwEAANBAXMDKgFBA0IBdgM8AWcDUQGn
A1oBygNbAdYDJAE2Ax8BLdAAAwEBAgNTAawDDgETAzsBZQQAAzABTQMHAQkDBAEF5AADPwFuAwYBCAMx
AU8DAwEEA1MBsOwAAzEBTwMBAQL/ADUAA1ABowNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGp
A1IBqQNSAakDUgGpA1IBqQNQAaNcAAMVAR0BQgJZAfUBUQJtAfcDQwF3A1sByAJCAVkB9QJYAV8B4wNK
AYwDCgENBAADVQG0A1kBxwMvAUkDAAEBAxsBJgMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEn
AxwBJwMcAScDAgEDBAADUgGpMAADUgGpEAADJwE6AzABTAMwAUwDMAFMAzABTAMwAUwDMAFMAzABTAMw
AUwDJwE6FAADBQEHA0wBkgFWAlgBwQMVAR0DPQFpAQAByAHzAf8BAAGQAeYB/wIAAdwB/wIAAd0B/wIx
AeMB/wIHAd4B/wIAAd0B/wJYAVsBywMGAQgDAAH/AwAB/wNDAXcDKQE+AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMgFRBAADUgGpBAADUAGdA1MBqgNTAaoDUwGqA1MBqgNT
AaoDUwGqA1ABnQwAA1IBqRAAA04B+wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A04B+xQA
ATACMQFNAQAByQHzAf8BAAHJAfQB/wFZAmAB6wFbAl4B2QEAAcAB8QH/AQABBQHfAf8CAAHgAf8CAAHg
Af8COAHpAf8CCgHiAf8CAAHgAf8CAAHgAf8DQAFxA1EBogNWAbYDKgFABAADEAEVAxEBFwMRARcDEQEX
AxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxABFggAA1IBqQQAA1ABnQNTAaoDUwGqAx8BLBwAA1IBqRMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAMHAQoBWQJnAfIBAAHKAfQB/wEA
AcoB9AH/AQABygH0Af8BAAGhAe4B/wICAeMB/wICAeMB/wICAeMB/wKpAe8B/wIJAeMB/wICAeMB/wIC
AeMB/wJWAVgBuQMKAQ4DEQEXAwABATgAA1IBqTAAA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8MAAMVAR0DPQFpAzoBYgFcAmAB1AEAAcsB9QH/AQABywH1Af8BAAHLAfUB/wEA
AaAB8AH/AgUB5gH/AgUB5gH/AgUB5gH/AsIB9gH/Ah0B6AH/AgUB5gH/AgUB5gH/AlcBWQG/A1IB9AMA
Af8DPgFsAw4BEwNCAXYDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwNDAXcDQgF2AxQBGwQA
A1IBqQMiATIDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpAyIBMgNSAakTAAH/
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAABSwJMAZABAAHLAfYB/wEAAcsB9gH/
AQABywH2Af8BAAHLAfYB/wEpAU0BUwH6A0MBeAMiATICSwFfAfsCCAHpAf8CCAHpAf8CzQH4Af8CLAHt
Af8CCAHpAf8CCAHpAf8DUAGeAwAB/gMAAf8DQwF3Ax4BKwNXAcUDWQHHA1kBxwNZAccDWQHHA1kBxwNZ
AccDWQHHA1kBxwNZAccDWAHGAyYBOQQAA1IBqQM0AVUDNAFVIAADNAFVAzQBVQNSAakTAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADUQGgAQABzAH3Af8BAAHMAfcB/wEAAcwB9wH/
AQABzAH3Af8DQwF3CAADSgGNAgsB7AH/AgsB7AH/AicB7wH/Ag8B7AH/AgsB7AH/AQcBGAHtAf8BUgJT
AagDMwFTAzwBZwMUARw4AANSAakDNAFVAzQBVQNGAYADUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDRQF/
AzQBVQM0AVUDUgGpEwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/w8AAQEBPwJA
AW8BPgJcAfgBAAHNAfcB/wEAAc0B9wH/AxIBGAgAAwEBAgNGAX4CUgFdAfACDgHuAf8BDgEPAe4B/wJA
AagB/QFFAkYBfgMDAQQDMwFTAzwBZwMUARw4AANSAakDNAFVAzQBVQM/AW4DMgFQEAADJwE7A0QBfAM0
AVUDNAFVA1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8PAAEBAT8CQAFv
AT4CXAH4AQABzgH4Af8BAAHOAfgB/wMSARgQAAMXASABAAG8AfcB/wEAAcQB9wH/AUACqAH9AUUCRgF+
AwMBBAMAAf4DAAH/A0MBdwMfASwDVwHFA1kBxwNZAccDWQHHA1kBxwNZAccDWQHHA1kBxwNZAccDWQHH
A1gBxgMmATkEAANSAakDNAFVAzQBVQMFAQcDVQG1AxEBFwNSAakDKQE+BAADUAGfAxEBFwM0AVUDNAFV
A1IBqRMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANRAaABAAHOAfgB/wEA
Ac8B+QH/AQABzwH5Af8BAAHPAfkB/wNDAXcQAANEAXoBAAHPAfkB/wEAAc8B+QH/AQABzwH5Af8BAAHO
AfgB/wFSAlMBqANSAfQDAAH/Az4BbAMOARMDQgF1A0MBdwNDAXcDQwF3A0MBdwNDAXcDQwF3A0MBdwND
AXcDQwF3A0MBdwMUARsEAANSAakDNAFVAzQBVQQAAzwBaANWAb4DIwE0A1UBtQMSARkDUQGgBAADNAFV
AzQBVQNSAakTAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXAHfDAABSwJMAZABAAHQ
AfoB/wEAAdAB+gH/AQAB0AH6Af8BAAHQAfoB/wEpAU0BUwH6A0MBeAMSARkDEwEaA0QBegEoAl8B+wEA
AdAB+gH/AQAB0AH6Af8BAAHQAfoB/wEAAdAB+gH/A0oBjAMKAQ4DEQEXAwABATgAA1IBqQM0AVUDNAFV
AwABAQMtAUYDCgEOBAADOQFfA1wBzgMoATwEAAM0AVUDNAFVA1IBqRMAAf8DggH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/A1wB3wMXASAMAAMVAR0DPQFpAzoBYgFcAmAB1AEAAdEB+gH/AQAB0QH6Af8BAAHQ
AfoB/wEAAcsB8wH/AQABywHzAf8BAAHQAfoB/wEAAdEB+gH/AQAB0QH6Af8BXQJhAeIDOgFiAz0BaQMU
ARwDUQGiA1YBtgMqAUAEAAMQARUDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEQEXAxEBFwMRARcDEAEW
CAADUgGpAzQBVQM0AVUDMwFTA1IBpgNKAYwHAAEBA0cBgwgAAzQBVQM0AVUDUgGpEwAB/wOZAf8DhQH/
AwAB/wMAAf8DAAH/AwAB/wNcAd8DFwEgGAADBwEKAVkCZwHyAQAB0gH7Af8BAAHSAfsB/wEAAdIB+wH/
AQAB0gH7Af8BAAHSAfsB/wEAAdIB+wH/AQAB0gH7Af8BAAHSAfsB/wErAl8B+wMRARcLAAH/AwAB/wND
AXcDKQE+AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMgFRBAADUgGp
AzQBVQM0AVUDEQEXA1ABngMkATYUAAM0AVUDNAFVA1IBqRAAA1AB+wMAAf8DAAH/AwAB/wMAAf8DAAH/
A1wB3wMXASAcAAEwAjEBTQEAAdIB/AH/AQAB0gH8Af8BWQJgAesBWwJeAdkBAAHSAfwB/wEAAdIB/AH/
AVsCYQHhAV0CYQHiAQAB0gH8Af8BAAHSAfwB/wM4AV4IAANVAbQDWQHHAy8BSQMAAQEDGwEmAxwBJwMc
AScDHAEnAxwBJwMcAScDHAEnAxwBJwMcAScDHAEnAxwBJwMCAQMEAANSAakDIgEyA1IBqQNSAakDUgGp
A1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQMiATIDUgGpEAADIAEuAykBPwMpAT8DKQE/AykBPwMp
AT8DEQEXIAADBQEHA0wBkgFWAlgBwQMVAR0DPQFpAQAB0wH8Af8BAAHTAfwB/wFFAkYBfwMQARUDVgGz
AUsCTAGPAwQBBkwAA1ABowNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGpA1IBqQNSAakDUgGp
A1IBqQNQAaNcAAMVAR0BQgJZAfUBUQJtAfcDIAEvGAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEA
AQEGAAEBFgAD/wEAAf4BHwYAAfgBAwYAAfABAQYAAeABAQYAAeABAQYAAeAHAAHAAUAGAAHBAeAGAAHB
AeAGAAHAAUEGAAGAAQEGAAGAAQMGAAEQAQcGAAGEAX8GAAHBAf8GAAHPAf8GAAL/AYABAQL/AfwBAQIA
Ab8B/QHgAQcBwAMAAaABHQHgAQcBwAEAARABAQGhAf0B4AEHAcABAAEfAf8BvwH9AeABBwQAAYABAQHg
AQcEAAGPAfEB4AEHAQMBAAEfAf8BgAEBAeABBwEDAQABHwH/AYMBwQHgAQcBAwHAAgABgAFBAeABBwED
AcACAAGIAREB4AEHAgABHwH/AYEBEQHgAQcCAAEQAQEBgQExAeABDwHAAQMCAAGBAfEB4AEfAcABAwIA
AYABAQHgAT8BwAEDAv8BgAEBAv8B/AE/Cw==
</value>
</data>
<metadata name="tsThumbnails.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>291, 17</value>
</metadata>
<metadata name="tsProperties.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>649, 17</value>
</metadata>
<metadata name="tsGCode.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>551, 17</value>
</metadata>
<metadata name="tsIssues.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>765, 17</value>
</metadata>
<metadata name="tsPixelEditorHistory.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1155, 17</value>
</metadata>
<metadata name="toolTipInformation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>863, 17</value>
</metadata>
<metadata name="toolTipInformation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>863, 17</value>
</metadata>
Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

+2 -2
View File
@@ -35,5 +35,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.6.2.2")]
[assembly: AssemblyFileVersion("0.6.2.2")]
[assembly: AssemblyVersion("0.6.2.3")]
[assembly: AssemblyFileVersion("0.6.2.3")]
+10
View File
@@ -220,6 +220,16 @@ namespace UVtools.GUI.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap cursor_16x16 {
get {
object obj = ResourceManager.GetObject("cursor-16x16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
+39 -36
View File
@@ -118,20 +118,23 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SaveAs-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\SaveAs-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="layers-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\layers-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Error-128x128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Error-128x128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Cancel-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Cancel-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="search-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\search-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="resize-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\resize-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-top-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-top-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_solidify" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_solidify.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="mutation_closing" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_closing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eye-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\eye-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -166,12 +169,12 @@
<data name="warning-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\warning-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="checkbox-marked-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\checkbox-marked-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Wrench-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Wrench-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pattern-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\pattern-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-down-double-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-double-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -181,15 +184,15 @@
<data name="arrow-up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-up.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Convert-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Convert-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Ok-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Ok-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Button-Info-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Button-Info-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-down-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Next-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Next-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -202,14 +205,14 @@
<data name="Open-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Open-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pointer-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\pointer-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="checkbox-unmarked-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\checkbox-unmarked-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="File-Close-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\File-Close-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="search-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\search-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="SaveAs-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\SaveAs-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Cancel-32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Cancel-32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -217,23 +220,20 @@
<data name="eye-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\eye-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_tophat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_tophat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Geometry-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Geometry-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CNCMachine-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\CNCMachine-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="mutation_tophat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_tophat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\plus.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UVtools" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\UVtools.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="Convert-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Convert-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="layers-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\layers-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="pattern-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\pattern-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_dilation" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_dilation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -253,23 +253,26 @@
<data name="arrow-end-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-end-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="checkbox-unmarked-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\checkbox-unmarked-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow-down-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\arrow-down-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="UVtools" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\UVtools.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\delete-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="checkbox-marked-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\checkbox-marked-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="CNCMachine-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\CNCMachine-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="pointer-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\pointer-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_solidify" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_solidify.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_blackhat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_blackhat.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="mutation_closing" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\gui\mutation_closing.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="Cancel-24x24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Cancel-24x24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="clipboard-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\clipboard-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -283,7 +286,7 @@
<data name="island-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\island-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="resize-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\resize-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="cursor-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\cursor-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
+1
View File
@@ -323,6 +323,7 @@
<None Include="Images\settings-16x16.png" />
<None Include="Images\pattern-16x16.png" />
<None Include="Images\resize-16x16.png" />
<None Include="Images\cursor-16x16.png" />
<Content Include="UVtools.ico" />
<None Include="UVtools.png" />
<None Include="Images\Exit-16x16.png" />