robaho / seashore

easy to use mac osx image editing application for the rest of us
GNU General Public License v2.0
439 stars 19 forks source link

allow 'replace' rather than 'composite' when filling #135

Closed snattack closed 2 years ago

snattack commented 4 years ago

I downloaded Seashore to do a simple thing, and it turns out it can't.

  1. Open a .PNG image with mixed transparency/non-transparency in a single layer.
  2. Select the transparent color with the Eyedrop tool.
  3. The color selected is now let's say black #000000 with 50% transparency.
  4. I want to change only the transparency, so I try want to replace that color with black #000000 25% transparency using the Bucket tool.

This does not work. Instead it seems to "add" color for every time I use the bucket. Which renders the tool useless in this case, and contradicts the behaviour of most other image softwares.

The image contains a frame that is not transparent, and the same color within the frame but with transparency. This also renders the "Magic select tool" useless, since it interprets the transparent color as the same as the frame.

Solution:

  1. Fix the "magic select" to take opacity into account.
  2. Fix the paint bucket so that is replaces color INCLUDING opacity.
robaho commented 4 years ago

I will definitely look into this next week. It should work as you describe so a bug was probably introduced.

robaho commented 4 years ago

I've looked into this and your assessment is not correct. The standard fill is 'normal/composite' and this makes sense. Consider: you select and area of an image, and you fill with a 'semi-opaque' color - the effect should blend this color into the existing pixels - not replace the pixels.

A simple work-around, is to select the area using the wand, then cut, then fill with the semi-opaque color. This effectively replaces the pixels if you use a tolerance of 0.

I can look at an enhancement to add a 'replace' option to the bucket fill, but the above should allow you to do what you want.

robaho commented 4 years ago

Your second point is not correct. The wand will select only the transparent pixels - it only appeared it was selecting both because of the fill/brush problem.

Note, you would have the same problem after wand select if you tried to use the brush (as it works the same). You would need to cut first.

robaho commented 2 years ago

Finally, I think you want to use the 'channels' feature to only adjust the alpha channel of the layer as the easiest way (possibly the eraser tool with less opacity).