Orama-Interactive / Pixelorama

Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yourself in the language of pixel art, this software will realize your pixel-perfect dreams with a vast toolbox of features. Available on Windows, Linux, macOS and the Web!
https://orama-interactive.itch.io/pixelorama
MIT License
7.06k stars 381 forks source link

Improvement: Better selections and more selection options #129

Closed Erevoid closed 2 years ago

Erevoid commented 4 years ago

As of right now, the program lacks a variety of selection tools, such as selection by color, select similar area (smart selection), freehand selection, ellipse selection, lasso etc.

But even for the rectangular selection, issues are visible. For example you cannot add another rectangle or remove an area within your already selected area. Other programs let you use rectangle selection, then press shift and add another rectangle to your selection. Or press control and remove a rectangle from your selection. Something similar should be implemented and be used for future selection tools too, maybe with different keys (instead of shift and control).

Furthermore, it would be nice to have some tool options for the selection. For example a clear "copy" and "cut" or "move selection" and "move content" button that you can press instead of using the shortcuts. Another useful addition would be a "copy visible" button, which practically copies not only the current layer's selection but every other visible pixel from the rest of the layers, above or under the selected one.

Lastly, a personal preference, I would like the outline of the selection to be animated, moving lines to indicate that something is going on within that area with the fancy outline.

A selection sub-menu on the top bar could also be added with more general selection options. The copy, cut, copy visible etc could be placed there, as well as invert selection, expand selection, clear selection, select all etc

Overloaded Edit: Adding a list of selection tools that would be nice to be added, because I like lists.

Lilith-In-Starlight commented 4 years ago

I have honestly no idea why would this be put in "up for discussion", this is completely straightforward and, imo, necessary.

OverloadedOrama commented 4 years ago

It's up for discussion because some people might disagree with the suggestions and offer other ones, or they might have more to say, or someone might want to ask questions for clarity, etc etc. This suggestion is not a high priority (won't be worked on in v0.7 and maybe not even v0.8) so we have time to further discuss these ideas.

IagoAndrade commented 4 years ago

Another good option would be to be able to move selection in multiple cells at the same time (both multiple frames, and multiple layers). Option to rotate only selected pixels would be handy too.

BentotSquared commented 4 years ago

Hello I have additionals as well, beware its long :)

the selection tool in Pixelorama today is just a simple tool in the software. You can just select what you want in your canvas and hold shift and drag the selected part anywhere you want and that is it that is all you can do with it which is okay its fine, but I think to make the selection tool the most powerful tool in Pixelorama will surely help all of us and make the software easier to use and to navigate. here are my suggestions to improve and to make the selection tool powerful in Pixelorama.

Suggestions to make the selection tool great:

  1. Make the rotate and the flip option also be in the selection tool's option

    • As the selection tool today is just for moving only, adding the rotate and flip option as an option in the the selection tool's selected area will make it better. The rotate option in Image tab will rotate the whole canvas including everything in it for example your sprite is not in the middle but on lower part of the canvas. If you choose the rotate option in the image tab, the whole canvas will rotate so next second your sprite will be upside down hanging in the ceiling of the canvas but if you selected a particular area, a rotate option will be also available and will still acts like the normal rotate option but it will only rotate everything that is only inside the selected area so if you selected your sprite and use the rotate option in the selection tool the sprite will rotate but will still be in the same position in your canvas. The same thing applies to the flip option in the selection tool.
  2. Make a resize option be in the selection tool's option

    • I will use the MS Word and Godot as examples for this. If you click or select a picture it will show small circles around every corner that you can drag to resize a picture on the particular side of the picture. Also in Godot if you select the sprite node in your scene it will show shapes on its top right corner on the middle top and middle right that you can drag and resize the sprite on its x axis, y axis or both. I've seen many pixel art software that have this option and I think I will be really helpful to use, will have more freedom to resize and will be faster to execute rather than clicking a tab then click on the scale image and resize.
  3. Can copy and paste the selected Area

    • Add an option to copy and paste a selected area and also when its pasted, the selection will be switched into the pasted copy of the selection.
  4. I think it will be better if the "to drag the selection press shift and drag" can be replaced by a normal selection.

    • Rather than "select an area and hold shift to drag it", replace it by "select an area and then drag it (without holding shift) in the middle part of the selection" just like how to move the selection box in Pixelorama but with the selected area also. You will just gonna click an option on the option list of the selection tool. Wait a minute, Option list? This brings us to how it will be implemented on the GUI of the editor.

Ok so we have the options to the selection tool instead of just moving the selection, now how can we activate those options? Here are the choices on how the options can be selected visually:

  1. A new tab will open, lining in with Pixelorama's Menu bar

    • If you select a shape in MS Word it will display a highlighted tab in the menu bar which is titled "format" which you can click and will give you options that you can toggle that will only affect the selected shape. That concept can be an option on how to toggle the selection's options which can display a rotate, flip and resize option either text or icon form.
  2. A Dialog Box will appear

    • A dialog box will appear containing the options rotate, resize and flip that you can drag on the editor or will have a fixed position on the sides.

Thank you for reading this suggestions of mine on how to make the selection tool in Pixelorama powerful and I hope maybe someday it will be implemented so that it can help everybody. Thank you again.

BentotSquared commented 4 years ago

Hello I wanna add something about the appearance of the rectangle selection case I think this might be implemented someday: 1 As what Erevoid said, I think its better to replace the current selection border with the animated moving lines Comparison: Current - just a normal indicator, the border is almost as thick as a pixel. The Fancy - More eye catchy means also a better indicator of something you select, much more thinner than the current one. 2 Fill the inside of the selection border with a translucent color of the border It will indicate the specific pixels you've selected much much better

Also about the copy and pasting: When I select a thing and copy it, you need to create another selection on your canvas to paste it which for me is slow so maybe a sugguestion for that is when you've copied something you dont need to create another selection to paste it, just ctrl + V and the one you've copied will be pasted on a particular position and is automatically selected so you can just move it around and stuffs.

I know that you devs are in a lot of work to make Pixelorama great so I really appreciate your dedications and love for this software. Thank you Orama!

dphaldes commented 3 years ago

Adding #38 here

OverloadedOrama commented 3 years ago

So, me and @Erevoid discussed about Pixelorama's new potential selection system, saw yours and @novhack's ideas from #56 and we prepared a proposal of ideas. Feel free to share your opinions on it!

Creating a selection:

Order of key press and mouse press matters. Shift + Mouse Click and Mouse Click + Shift have different effects.

These work only with the rectangle and ellipse selection tools.

Transformations

Again, order of key press and mouse press matters.

Movement

Scaling

Rotating

Skewing

Selection system miscellaneous

Selection tool options:

Menu additions:

More options in the Edit menu.

Selection menu:

Keep in mind that this is still a proposal and some of these stuff may not be implemented in v0.9, or at all, or the final implementation may differ from these ideas. Feel free to discuss!

dphaldes commented 3 years ago

Regarding rotating the selection, the way Inkscape handles it is very intuitive. You tap on the selection to toggle between move/rotate modes. inkscape

novhack commented 3 years ago

Regarding rotating the selection, the way Inkscape handles it is very intuitive. You tap on the selection to toggle between move/rotate modes.

If there was also a shortcut to swap between rotation and resize mode I think this system would be pretty good.

novhack commented 3 years ago

In a discussion on Discord with wh33t he asked about disconnected selection. I don't think it has to be supported right away with these changes but it would for sure be a very nice future improvement. Maybe it could act internally as multiple selections encapsulated in a single resize/rotate gizmo.

dphaldes commented 3 years ago

Adding #449

OverloadedOrama commented 3 years ago

I updated the proposal to make it more complete and detailed. https://github.com/Orama-Interactive/Pixelorama/issues/129#issuecomment-756799706

It may not be final and things could still change. Also, not everything might make it in v0.9. Some features may be implemented in future versions. Every feature that has already been ticked means that it's already been implemented on the latest master branch.