Giter Club home page Giter Club logo

abspriteeditor's People

Contributors

ace-dent avatar pharap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

abspriteeditor's Issues

Remove 'License' save/load from Export dialog

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. :-)

Add notes per image

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.

Save Sprite order

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.

Editing the licence should flag the file as updated

  • Open a file with an existing (embedded) license.
  • Edit the license text. Accept.
  • The file is not shown as modified (/not marked as 'dirty'); the file icon doesn't turn red.
  • Can quit without saving.

Expected: editing the license should count as a file modification.

Users can open duplicate copies of a single file

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.

Errors with Banner style image

Imported a medium-large size banner image, with mask.
On exporting as PlusMask format, data is totally garbled. Exporting as ExternalMask mask is offset to the right by 1-2px. Edit: Human error. The exported data is fine.

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.

Export all project images

Add the ability to export .png files for all project images.
For larger projects, it can be tedious to do each individually.

Unhandled exception, drawing with filled rectangle

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.

Editor handling of transparent pixels

Issue:

  • Create a frame. Draw a few individual white pixels against default transparent background.
  • Clear all the white pixels, by drawing over with the pencil, 'colour'=transparent.
  • Image appears fully transparent.
  • Now flood fill background with black. Individual pixels can be seen again (still as transparent).

Suggested fix: In the editor, when setting any pixel value to transparent (A=0), also set colour to back (RGB=0,0,0).

Add alternating colour mode

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

Improve the Image Preview Panel

Please consider:

  1. Updating preview panel when selecting different images (not just while editing). i.e. clicking on an image will instantly display its preview, so the preview screen always corresponds to the editor screen.
  2. Preview should approximate Arduboy screen, so should alway have square pixels, and...
  3. Add fixed scaling options (1:1 tiny!?, 2x, 4x, 8x... ?)
  4. Right-click on preview panel gives option to export .png image, etc.
  5. Add option for different preview backgrounds, default = black, white, grey, check.

XML `<SpriteFile>` element cannot be edited

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?

Limit 'BitmapEditorPanel' to only drawing what needs to be drawn.

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.

License edit form is not resizable.

Minor issue:

  • LicenseEditForm has resizable control handle.
  • Dragging enlarges the dialog box, but doesn't increase the text editing area.
  • Ideally make the edit area expand, or just remove the resize handle.

CABI format output

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' tooltip flashes on and off

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.