pharap / abspriteeditor Goto Github PK
View Code? Open in Web Editor NEWA basic sprite editor designed for exporting and editing Arduboy sprites.
License: Apache License 2.0
A basic sprite editor designed for exporting and editing Arduboy sprites.
License: Apache License 2.0
Editing is supposed to automatically cancel (and thus revert) when a namespace or sprite name is invalid, but it seems I forgot to add the code to cancel it.
It is useful to know if the application is the latest version.
Please update version numbers when compiling executables and/or add an About page with this info.
Despite many hours using the program, I still often click Save instead of Export in the Export
window. I think it's some kind of UX conditioning ๐คช ...
As previously discussed, I don't think there's any need to handle loading and saving of License files during Export, as it duplicates the functionality present in the separate LicenceEditForm
(sp.!?) window.
I think having a basic text preview and editing, is more than sufficient during export. It will make the UI more intuitive and less cluttered. :-)
Consider the ability to add comments/ notes per image.
This is useful during development to track metadata, e.g. source, planned use, etc.
Comments should be exported in .h
file.
From the README:
Reordering namespaces and sprites does not affect file output due to how sprite files are internally represented at the moment. See Planned Features.
(I couldn't see a comment in the Planned Features BTW).
The (re-)ordering of Sprites is very useful as a project develops.
It would be super useful if it could be saved, to avoid the need to hand-edit the xml.
Accept
.Expected: editing the license should count as a file modification.
When working with many tabs, a user โ in error โ may open multiple copies of a single document.
It is then possible to make changes in different tabs, saving each separately, giving rise to potential data loss (due to the order of file's being overwritten).
Expectation: when trying to open an already loaded document, either provide user feedback, or ideally just switch focus to that open tab and so prevent duplication.
Imported a medium-large size banner image, with mask.
On exporting as Edit: Human error. The exported data is fine.PlusMask
format, data is totally garbled. Exporting as ExternalMask
mask is offset to the right by 1-2px.
After exporting, on clicking into the editor area- crash! Unhandled exception:
System.ArgumentOutOfRangeException: Parameter must be positive and < Height.
Parameter name: y
Note: The editor window isn't scaling up the pixels to fill the viewable area.
It would be nice to support drag & drop of files, to load in the program.
Add the ability to export .png
files for all project images.
For larger projects, it can be tedious to do each individually.
When creating a new Sprite, it'd be handy to set the background colour for all the frames.
Currently it defaults to transparent.
I spend a lot of time fill these to black...
Drawing with a filled rectangle near the edge of a sprite, produced an unhandled exception
error message:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentOutOfRangeException: Parameter must be positive and < Width.
Parameter name: x
at System.Drawing.Bitmap.SetPixel(Int32 x, Int32 y, Color color)
at ABSpriteEditor.Utilities.BitmapHelper.OutlineRectangle(Bitmap bitmap, Rectangle area, Color fillColour)
at ABSpriteEditor.Tools.RectangleOutlineTool.control_MouseUp(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseUp(MouseEventArgs e)
at ABSpriteEditor.Controls.BitmapEditorPanel.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4515.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ABSpriteEditor
Assembly Version: 0.1.0.0
Win32 Version: 0.1.0.0
CodeBase: file:///C:/Users/andrew/Desktop/Coding%20stuff/ABSpriteEditor.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4550.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4536.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4536.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Issue:
Suggested fix: In the editor, when setting any pixel value to transparent (A=0), also set colour to back (RGB=0,0,0).
Enhancement:
Add a new 'colour' option - alternating mode.
Drawing will invert the colour of the existing pixel (black --> white / white --> black).
If the pixel is set to transparent, set to white on the first draw.
This is very useful in the pencil drawing mode. It saves time avoiding manual colour changes.
When the background has been set (flood fill), we can just draw the foreground details. If a mistake is made, a second click will restore to the background colour.
Various other pixel drawing programs act in this way.
Re. icons - I'd suggest using the current 'invert' icon - as the square form will fit well under the other colour boxes.
A new icon for the global invert tool, could incorporate a round element (which is common). e.g. https://www.flaticon.com/free-icon/invert-colors-button_61136
Please consider:
Re. <SpriteFile FileName="FOO">
...
What is the purpose for this top hierarchy element in the existing XML (and underlying model)?
It cannot be renamed in the program directly.
If edited externally, the edited version is honoured (good!)... but it doesn't correlate to any other data structure when exporting to cpp, etc.
Is it necessary?
If it remains, perhaps editing should be allowed?
The BitmapEditorPanel
gets quite sluggish when larger images are loaded.
The best way to solve this would probably be to only draw what's actually on-screen.
This isn't a major issue because it's not likely that people will be wanting to edit large images, but it's something that would be nice to have.
Minor issue:
LicenseEditForm
has resizable control handle.To resolve complaints expressed in #15.
Exported CABI image data is different from the original program's output, for the same image. Expected the same bytes output.
Also, no masked image data is exported.
Invert pixel values 0>1, 1>0.
Mouse-over the 'Invert' tool.
Tool-tip momentarily displays but starts to flash on/off rapidly.
Only happens when window is made full-screen height (width doesn't matter).
Behaviour not shown with other tooltips.
Update: Can trigger with a smaller window, but when the window is low enough that the tooltip doesn't have enough y-space to be displayed. Perhaps because the text contains multiple lines?
Add action buttons for basic clockwise and anticlockwise rotation.
At the moment they seem to be the wrong way around and need to be flipped back to their intended arrangement.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.