Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Flat mosaic (zero height)
#1
Hello!

is it somehow possible to make a mosaic that is completely flat, ie has zero height,
or: zero width bevel around each tile? I have seen posts here and there asking
for this but can't figure out if it has been somehow achieved or not...

thnx
Reply
#2
(06-09-2022, 11:28 AM)gimpoid Wrote: Hello!

is it somehow possible to make a mosaic that is completely flat, ie has zero height,
or: zero width bevel around each tile? I have seen posts here and there asking
for this but can't figure out if it has been somehow achieved or not...

thnx

Annoying isnt it, even with all the option off still some border artifacts with the Gimp GEGL mosaic. Just had a look around and nothing from my archive that is suitable.

The best I can suggest is the Gimp G'mic plugin http://www.gmic.eu which has a simple mosaic filter (one slider for size) A comparison.

   
Reply
#3
It would be very complicated. Along the edges, pixels are partially transparent, so the frontier between two tiles is the overlap of partially transparent pixels, which is never totally opaque. So you have to either cover-up the mess (like what is done with the unescapable 1px) or devise an algorithm to figure out which edges should be made of fully opaque pixels (and handle  vertices pixels appropriately).

A possible shortcut is to get the mosaic with joins as little intrusive as possible (color and thickness):

   

And then apply a small "Median blur" to the picture:

   
Reply
#4
1) menu Layer > transparency > Add alpha channel

2) Use the Filters > Distorts > Mosaic with these parameters:
* Tile height : 1.0
* Color averaging : checked
* Tile spacing : 0.0
* Joints color and Light color: full transparent green (0, 255, 0, 0)
* Antialiasing : unchecked

This will set the space between the tiles a bit transparent

3) Use Colors > Curves with these parameters:
* Channel : Alpha
* input : 255, output : 0

This will set the space between the tiles completely transparent

4) Use Filters > Blur > Median Blur :
* Alpha percentile : 100.0

This will merge the colors of the tile in the transparent space

optional) you can add a bit of antialiasing to the result with Filters > Blur > Mean Curvature Blur using a small number of iterations
Reply
#5
Thnx! What wizardry... I managed to reproduce tmanni's method, thnx. There are some thing in there I didn't even know existed! 
Smile  Though only using the median blur also works pretty well...
Reply
#6
(06-09-2022, 02:29 PM)tmanni Wrote: 1) menu Layer > transparency > Add alpha channel

2) Use the Filters > Distorts > Mosaic with these parameters:
* Tile height : 1.0
* Color averaging : checked
* Tile spacing : 0.0
* Joints color and Light color: full transparent green (0, 255, 0, 0)
* Antialiasing : unchecked

This will set the space between the tiles a bit transparent

3) Use Colors > Curves with these parameters:
* Channel : Alpha
* input : 255, output : 0

This will set the space between the tiles completely transparent

Missing a step?
Everything become transparent ➤ I got a full transparent layer with alpha output at 0
Reply
#7
@PixLab You're right, the good setting for the curve is input: 254 output: 0
It can work with input = 255 due to floating point rounding errors in the curve mapping calculation.
Reply
#8
(06-10-2022, 04:35 AM)tmanni Wrote: @PixLab You're right, the good setting for the curve is input: 254 output: 0
It can work with input = 255 due to floating point rounding errors in the curve mapping calculation.

I can't get it to work... output at 90 is already transparent at 0 it's full transparent like empty (what am I doing wrong?)

   
Reply
#9
Initially I just pulled the curves to the right/bottom and it becomes more
and more transparent. It seems to correspond do setting input to 100
and output to 0. Dont know why it isn't 255 (or 254) in my case.. See images.


Attached Files Thumbnail(s)
       
Reply
#10
Quote:output at 90 is already transparent at 0 it's full transparent like empty

This is because you are displaying logarithmic histogram instead of linear, but it does not explain why it fails.
With an input set to 254, the bottom left point of the curve must be located to the right side of the graph, which is not the case on your screenshot.
Reply


Forum Jump: