Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Conceição <Tiago_caza@hotmail.com>2020-06-29 07:18:33 +0300
committerTiago Conceição <Tiago_caza@hotmail.com>2020-06-29 07:18:33 +0300
commit2cbb3f377a7931cc66fae4145c84e99154028327 (patch)
treea9aa4801e580a9e39e1ce3001e4e162789ff1bf6 /UVtools.Core/PWSFile.cs
parent6d401eb774bc4d9a0014e24b2d48c4f5e156d912 (diff)
v0.6.0.0v0.6.0.0
* (Add) UVtools now notify when a new version available is detected * (Add) Mutator "Flip" * (Add) Mutator "Rotate" * (Add) User Settings - Many parameters can now be customized to needs * (Add) File load elapsed time into Title bar * (Add) Outline - Print Volume bounds * (Add) Outline - Layer bounds * (Add) Outline - Hollow areas * (Add) Double click layer picture to Zoom To Fit * (Improvement) Huge performance boost in layer reparing and in every mutator * (Improvement) Layer preview is now faster * (Improvement) Islands detection is now better and don't skip any pixel, more islands will show or the region will be bigger * (Improvement) Islands search are now faster, it will jump from island to insland instead of search in every pixel by pixel * (Improvement) ResinTrap detection and corrected some cases where it can't detect a drain * (Improvement) Better memory optimization by dispose all objects on operations * (Improvement) Image engine changed to use only OpenCV Mat instead of two and avoid converting from one to another, as result there's a huge performance gain in some operations (#6) * (Improvement) UVtools now rely on UVtools.Core, and drop the UVtools.Parser. The Core now perform all operations and transformations inplace of the GUI * (Improvement) If error occur during save it will show a message with the error * (Improvement) When rotate layer it will zoom to fit * (Improvement) Allow zoom to fit to print volume area instead of whole build volume * (Removed) ImageSharp dependency * (Removed) UVtools.Parser project * (Fix) Nova3D Elfin printer values changed to Display Width : 131mm / Height : 73mm & Screen X: 2531 / Y: 1410 (#5) * (Fix) Fade resizes make image offset a pixel from layer to layer because of integer placement, now it matain the correct position * (Fix) sl1: AbsoluteCorrection, GammaCorrection, MinExposureTime, MaxExposureTime, FastTiltTime, SlowTiltTime and AreaFill was byte and float values prevents the file from open (#4) * (Fix) zcodex: XCorrection and YCorrection was byte and float values prevents the file from open (#4) * (Fix) cws: XCorrection and YCorrection was byte and float values prevents the file from open (#4) * (Fix) cws: Wrong # char on .gcode file prevent from printing (#4)
Diffstat (limited to 'UVtools.Core/PWSFile.cs')
-rw-r--r--UVtools.Core/PWSFile.cs23
1 files changed, 13 insertions, 10 deletions
diff --git a/UVtools.Core/PWSFile.cs b/UVtools.Core/PWSFile.cs
index 2cf034a..1075d01 100644
--- a/UVtools.Core/PWSFile.cs
+++ b/UVtools.Core/PWSFile.cs
@@ -321,22 +321,22 @@ namespace UVtools.Core
Width = (uint) image.Width,
Height = (uint) image.Height,
Resolution = 42,
- Data = new byte[span.Length * 2]
+ Data = new byte[image.Width * image.Height * 2]
};
- int pixel = 0;
- for (int i = 0; i < span.Length; i++)
+ int i = 0;
+ for (int pixel = 0; pixel < span.Length; pixel += image.NumberOfChannels)
{
// BGR
- int b = span[pixel++] >> 3;
- int g = span[pixel++] >> 2;
- int r = span[pixel++] >> 3;
+ int b = span[pixel] >> 3;
+ int g = span[pixel+1] >> 2;
+ int r = span[pixel+2] >> 3;
ushort color = (ushort) ((r << 11) | (g << 5) | (b << 0));
- preview.Data[i * 2] = (byte) color;
- preview.Data[i * 2 + 1] = (byte) (color >> 8);
+ preview.Data[i++] = (byte) color;
+ preview.Data[i++] = (byte) (color >> 8);
}
preview.Section.Length += (uint) preview.Data.Length;
@@ -849,8 +849,11 @@ namespace UVtools.Core
Parallel.For(0, LayerCount, layerIndex =>
{
LayerData layer = new LayerData(this, (uint) layerIndex);
- layer.Encode(this[layerIndex].LayerMat);
- LayersDefinition.Layers[layerIndex] = layer;
+ using (var image = this[layerIndex].LayerMat)
+ {
+ layer.Encode(image);
+ LayersDefinition.Layers[layerIndex] = layer;
+ }
});
LayersDefinition.Section.Length += (uint)Helpers.Serializer.SizeOf(LayersDefinition[0]) * LayerCount;