0.6.0
Special call out to @duianto who reported a lot of issues/feature requests since 0.5 went out, thanks for making this a more solid release!
Features
Webp support and save quality for jpeg
The .webp image format is now supported, it and jpeg now have a quality picker when saving the image.
Note that for lossy formats the original image will remain open and not be reloaded upon saving, this is particularly important when using auto save so the image doesn't continue to get recompressed each save.
Hand tool (#55)
The new Hand tool allows panning the image with left click. The shortcut for the tool is H and it can be temporarily switched to by holding space.
Duplicate layers and images
Layers and images (in .ico files) can now easily be duplicated via the right click context menu or through the button in the Layers or Images windows:
Flexible windows
Windows in the UI can now be dragged around the UI, they will snap to the editor's edges and relayout when the webview is resized. This window state is remembered for the lifetime of the editor and across hot exit/reload.
Fit layer to window
The new luna.view.fitLayerToWindow
command will zoom into a layer's non-transparent content. This command is available through the command palette, the layers context menu and by alt+clicking the layer in the Layers window.
Shift to lock aspect ratio
The Move Selection, Move Pixels and Rectangle tools now support aspect ratio locking when resizing while shift is held.
Other enhancements
- Added support for drag and drop within the images and layers views.
- The zoom tool supports zooming into an area by clicking and dragging.
- There's a new report issue/feedback button in the top right, backed by the
luna.help.reportIssue
command. - New setting
luna.mouseWheelBehavior
allows flipping the ctrl/cmd+wheel behavior so you can zoom without holding a modifier. - Lesser used .jpe (jpeg), .jiff (jpeg) and .dib (bmp) file extensions are now supported.
- The move pixels tool now allows flipping the selection horizontally/vertically.
- Added a readonly mode that prevents edits on "readonly file systems", such as when opening files via the scm/git sidebar (#19).
- The Layers and Images windows now have a context menu.
- Layers can now be renamed, note that this is not currently persisted with the file so will only last for the current session.
Behavior Changes
- The default colors have been swapped so black is now the primary and white is the secondary (#53). This makes more sense since the default background color of new images is white.
- When merging a layer into a non-visible layer it will now be shown. The correct behavior here is arguable but it felt like a bug that this wasn't happening, especially when the top layer was visible.
- Any resize to an image, including undo/redo will now fit the image to the window (#70). This may get refined more later perhaps even with the possibility of integrating with the standard go forward/back commands but for now this feels much better, especially when using the cropping tool.
Performance Improvements
- Reduced the amount of data uploaded to GPU on some frames.
Documentation
- New getting started pages
- Color picker tool
- Rectangle tool
- Viewport tools
Bug Fixes
- Reuse new untitled image IDs when editors are saved or closed (#51).
- Fix untrusted workspace support by using the new
capabilities
key. - Fix primary and secondary color swatches sometimes having a white outline when
window.zoomLevel
is not1
(#49). - Improve styling of top/bottom bar toggle items.
- Layers
- Reuse the layer ID in its name when layers are deleted (#51).
- Fixed the layer's window visibility and blend mode not updating on undo/redo (#60).
- Fixed active layer sometimes not getting set when deleting layers (#67).
- Fix merging down not retaining bottom layer's data if it was not visible at the time of merging.
- Hot exit/restore
- Fixed some cases where window state (eg. layers, palette, etc.) would not be restored by hot exit.
- Window state is now restored after a hot exit reload.
- Fix exception that would throw when the Reopen Closed Editor command is run after closing an untitled image.
- Tools
- Dragging tools (selection, rectangle, line, etc.) to the edge of the viewport will now update the preview live instead of on the next mouse move event.
- Rectangle tool
- Fixed history corruption when deleting or creating layers before finishing a rectangle (#64).
- Selection tool
- Fixed undoing move selection entries triggering select all.
- Move pixels tool
- When switching to the Move Pixels tool while the selection is out of the viewport, the expand canvas to selection button will be correctly enabled.
- Rendering
- .ico files
- Be more lenient for .ico files that state invalid icon entry values such that they still load and attempt to extract the images. Information on file corruption like this will be written to the VS Code's console. Big thanks to @fourbadcats for providing an example file for this.
- Allow icons containing corrupt images that fail to load to continue on, corrupt images will still be shown in the images window as "1x1 - corrupt".
- Improved diagnostics for problems that occur during .ico parsing.