diff options
author | Tiago Conceição <Tiago_caza@hotmail.com> | 2020-06-29 07:18:33 +0300 |
---|---|---|
committer | Tiago Conceição <Tiago_caza@hotmail.com> | 2020-06-29 07:18:33 +0300 |
commit | 2cbb3f377a7931cc66fae4145c84e99154028327 (patch) | |
tree | a9aa4801e580a9e39e1ce3001e4e162789ff1bf6 /UVtools.Core/PWSFile.cs | |
parent | 6d401eb774bc4d9a0014e24b2d48c4f5e156d912 (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.cs | 23 |
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; |