Skip to content

Releases: sn4k3/UVtools

v4.2.0

29 Jan 23:34
Compare
Choose a tag to compare
  • Layers:
    • (Add) Brotli compression codec with good performance and compression ratio (Choose it if you have low available RAM)
    • (Improvement) Use RecyclableMemoryStream instead of MemoryStream for GZip and Deflate 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:

image

v4.1.0

19 Jan 23:06
Compare
Choose a tag to compare
  • 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 and Help 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:
    • (Fix) Layer actions - Import layer(s): Unable to process image files (#815)
    • (Fix) PCB Exposure: Draw circles using ellipses in order to use non-square pixels (#822)
  • 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

24 Dec 19:43
Compare
Choose a tag to compare
  • (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

12 Dec 03:46
Compare
Choose a tag to compare
  • (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

09 Nov 04:59
Compare
Choose a tag to compare
  • FileFormat Anycubic:
    • (Fix) Preview marker size and PropertyFields for given file version
    • (Fix) Do not cache and reuse layer images if equal on file write, as that is causing "file damage" message (#782, #787)
  • Tools:
    • Mask:
      • (Improvement) Apply the mask with Multiply instead of BitwiseAnd (#747)
    • Layer and pixel arithmetic:
      • (Improvement) Use the byte scale value (1/255) for multiply operations
    • Infill:
      • (Add) Floor/Ceil thickness (#785)
      • (Fix) Remove the debug blocking window when selecting the honeycomb pattern
  • (Upgrade) .NET from 6.0.23 to 6.0.24

v4.0.3

19 Oct 00:53
Compare
Choose a tag to compare
  • (Change) macOS: Change from Control to Command key to activate shortcuts from main menu (#766)
  • (Upgrade) .NET from 6.0.22 to 6.0.23
  • (Upgrade) AvaloniaUI from 11.0.4 to 11.0.5

v4.0.2

02 Oct 01:14
Compare
Choose a tag to compare
  • (Change) UI: Layer height inputs minimum from 0.01mm to 0.001mm (#761)
  • (Fix) Goo: The value of "RetractHeight" was not being set to the file (#763)

v4.0.1

18 Sep 15:46
Compare
Choose a tag to compare
  • (Fix) Suggestions settings were not displaying

v4.0.0

17 Sep 11:49
Compare
Choose a tag to compare
  • 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 of PositionZ
      • (Fix) "Multiple exposures" panel was always visible even if not able
      • (Improvement) Disable "Multiple exposure" and "Multiple heights" for the AnyCubic format
    • 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)
  • 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 the BoundingRectangle 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)
  • 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

30 Jun 16:03
Compare
Choose a tag to compare
  • 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