Releases: sn4k3/UVtools
Releases · sn4k3/UVtools
v4.2.0
- Layers:
- (Add) Brotli compression codec with good performance and compression ratio (Choose it if you have low available RAM)
- (Improvement) Use
RecyclableMemoryStream
instead ofMemoryStream
forGZip
andDeflate
compressions, this results in faster compressions and less memory pressure - (Improvement) Changed how layers are cached into the memory, before they were compressed and save for the whole image. Now it crops the bitmap to the bounding rectangle of the current layer and save only that portion with pixels.
For example, if the image is empty the cached size will be 0 bytes, and in a 12K image but with a 100 x 100 usable area it will save only that area instead of requiring a 12K buffer.
The size of the buffer is now dynamic and will depends on layer data, as so, this method can reduce the memory usage greatly, specially when using large images with a lot of empty space, but also boosts the overall performance by relief the allocations and the required memory footprint.
Only in few special cases can have drawbacks, however they are very minimal and the performance impact is minimal in that case.
When decompressing, the full resolution image is still created and then the cached area is imported to the corresponding position, composing the final and original image. This is still faster than the old method because decompress a larger buffer is more costly.
In the end both writes/compresses and reads/decompresses are now faster and using less memory.
Note: When printing multiple objects it is recommended to place them close to each other as you can to take better advantage of this new method.
- Issues Detection:
- (Fix) When detecting for Islands but not overhangs it will throw an exception about invalid roi
- (Fix) Huge memory leak when detecting resin traps (#830)
- (Improvement) Core: Changed the way "Roi" method is returned and try to dispose all it instances
- (Fix) EncryptedCTB, GOO, SVGX: Huge memory leak when decoding files that caused the program to crash (#830)
- (Fix) UI: Missing theme styles
- (Fix) PrusaSlicer profiles for Creality Halot Mage's: Enable the "Horizontal" mirror under the "Printer" tab to produce the correct orientation when printing (#827)
New layer compression sample comparison:
v4.1.0
- File formats:
- (Add) Emake3D Galaxy 1 (QDT) file format and PrusaSlicer printer profile
- (Add)
ManufacturingProcess
property to get the manufacturing process used by the file/printer combination - (Add)
SupportAntiAliasing
property to get if the file supports antialiasing usage (grey pixels) - (Improvement) Goo: On encode image do not use gradient compression when going from grey to black or white
- (Change) PZR: Disable gradient compression for this file format as it corrupt layer for Phrozen Sonic Mini 8K S (#776, #810, #814)
- (Fix) Thumbnail text generation and for partial open files
- (Fix) Parse transition step time and count from layers throw an exception when the file only have one layer
- UI:
- (Add) Title bar: Display the loaded file size and re-arrange the last operation run time to the right
- (Improvement) Re-arrange some items on
File
andHelp
menu - (Improvement) Use icons instead UTF-8 character for buttons with drop-down menus
- (Fix) Benchmark tool: Allow to show percentages larger than 100% and increase progress height
- Tools:
- Suggestions:
- (Fix) Bottom layers count: Do not trigger the suggestion when the file layer count are equal or less than the configured minimum bottom layers
- (Fix) Transition layers: Do not trigger the suggestion when it can't fade exposure time or when bottom time is equal to normal time
- (Fix) PrusaSlicer Printer: "Elegoo Mars 4" is wrongly named, renamed to "Elegoo Mars 4 DLP" and added the corresponding "Elegoo Mars 4"
- (Upgrade) .NET from 6.0.25 to 6.0.26
- (Upgrade) AvaloniaUI from 11.0.6 to 11.0.7 (Fixes #803, #812)
v4.0.6
- (Add) Setting: Automations - Restrict the file name to valid ASCII characters (Default: Off)
- (Add) New check when opening a file that verify if the file name have invalid characters and prompt for rename based on the above introduced setting
- (Add) Rename file: Add a option to allow only ASCII characters on the file name
- (Improvement) LZ4 layer compression by reusing pools of memory buffers, this relief the LOH allocations and improves the overall performance
- (Fix) Phased Exposures: Disallow AnyCubic file formats from run the tool
v4.0.5
- (Add) Tool - Phased Exposure: Replace "Double Exposure" with "Phased Exposure" tool, same effect but allow to define more steps (#778)
- (Fix) Infill: Honeycomb Infill does not completely infill model (#789)
- (Improvement) File -> Open recent: Disable all inexistent files (Can no longer be clicked)
- (Upgrade) .NET from 6.0.24 to 6.0.25
- (Upgrade) AvaloniaUI from 11.0.5 to 11.0.6
v4.0.4
- FileFormat Anycubic:
- Tools:
- (Upgrade) .NET from 6.0.23 to 6.0.24
v4.0.3
v4.0.2
v4.0.1
v4.0.0
- UI:
- Settings:
- (Add) Themes: Fluent default, which set light/dark mode depending on system settings
- (Add) Theme density which only applies to Fluent theme
- (Change) Themes: Rename "Default" to "Simple"
- (Remove) Simple theme
- Exposure time finder:
- (Fix) "Multiple layer height" panel visibility was wrongly check for
ExposureTime
instead ofPositionZ
- (Fix) "Multiple exposures" panel was always visible even if not able
- (Improvement) Disable "Multiple exposure" and "Multiple heights" for the AnyCubic format
- (Fix) "Multiple layer height" panel visibility was wrongly check for
- Tool windows:
- (Fix) Align the description to the left to fix the misalignment when resizing the window
- (Fix) Make layer selection shortcuts to work
- (Fix) Some invalid bindings
- (Fix) Save properties to disk/clipboard was disabled when file has no thumbnails
- (Fix) File - Reset layer properties was no unlocking the File - Save
- (Improvement) When sending a command under "File - Terminal", it will now unlock the "File - Save" option and refresh the UI with the new information if changed
- (Improvement) When moving model by an operation or suggestion it will redetect the issues to update their positions (#752)
- Settings:
- Layer actions - Import layer(s):
- (Add) Button to set the current layer
- (Improvement) If any file isn't imported it will show an message informing why
- (Fix) Layer properties were getting rebuilt (#739)
- File formats:
- (Change) Thumbnails logic, it's now a
List
instead of a fixed array, this allow to dynamic add or remove thumbnails without having a fixed number - (Fix) The flag for using per layer settings (
IsUsingGlobalParameters
) now take into account if layer is able to use each property in check before compare (#742) - (Fix) Accessing
BoundingRectangleMillimeters
was not calculating theBoundingRectangle
if necessary - (Fix) SL1: Files with thumbnails size different from original SL1 would not display under the UI
- (Fix) Anycubic: Model information is not set after an auto-conversion from SL1
- (Fix) CTB: Error when open file in partial model with malformed file due invalid checksum
- (Fix) Image files: Could not find a writer for the specified extension (#755)
- (Change) Thumbnails logic, it's now a
- UVtoolsCmd:
- (Add) "compare" command to compare two files and output the differences
- (Add) "print-formats" command to print the available formats
- (Improvement) Improve "extract" command to allow extract specific thumbnails or layers in a range or indexes (#754)
- Project:
- (Change) Rename UVtools.WPF to UVtools.UI
- (Change) Make UVtools.UI nullable enabled
- (Remove) UVtools.GUI
- (Improvement) Use CompiledBinding instead of ReflectionBinding
- (Improvement) Sign the libraries and project with a strong key
- (Upgrade) .NET from 6.0.18 to 6.0.22
- (Upgrade) AvaloniaUI from 0.10.21 to 11.0.4
- (Upgrade) OpenCV from 4.7.0 to 4.8.0
- (Add) PrusaSlicer printer: Elegoo Saturn S
v3.15.1
- File formats:
- (Fix) CTB, CXDLPv4 and GOO: Unable to set some of the virtual bottom properties to 0
- (Fix) Anycubic and GOO: When open file in partial mode, the layer data was not set from the layer table
- (Fix) CXDLP: "Invalid printer model" error
- (Add) File - Reset layers properties: Reset layers properties with the global properties of the file