I suggest adding new transform/scaling algorithm for selection transforms. I’d call it “Set of Points”.
What is should do:
- Collect all non-transparent pixels from selection as set of points with properties (x y color)
- Also collect all semi-transparent pixels from selection
- For transformation just draw pixels at transformed coordinates (x y) → (x’ y’)
- First transform and draw all semi-transparent pixels
- Then transform and draw all opaque (non-transparent) pixels
This way it will be possible to size down sketches without losing opaque pixels.
And also to scale up art into pixels confetti, which may work as an effect and as base for upscaling work.
Optionally there could be [V] Use brush mode to replace each pixel with current brush, including custom brushes (and its colors adapted to color and transparency of drawn transformed pixel). To adapt colors there are several strategies (combobox?), but at least it should replace main color i.e. that one color used more than other ones.