Comment 3 for bug 166252

Revision history for this message
Buliabyak-users (buliabyak-users) wrote :

> There must be an easy solution. If two objects touch each
other, have some code to overide AA and ensure that no gap
is shown between their two touching borders.

I would agree with you if you could show me a single vector
editor which solves this problem. As I said, I know of none.
Even professional ones such as Adobe Illustrator behave like
this.

Deciding "if two objects touch each other" is a very
non-trivial problem. I'm not sure it is solvable in the
general case, and in any case an attempt to solve it will be
very computationally intensive. "Overriding AA" selectively
is also a can of worms; I'm sure that trying to do this
would cause lots of artefacts that would be very difficult
to get rid of.

It's one of those cases where using human intelligence would
be much faster than trying to automate it. In your case,
just slightly enlarge all the squares so that they overlap a
bit. If your squares were clones of a single square (a
recommended approach for artwork like this), it would be a
one-minute task.

Another workaround which only works for strictly
horizontal/vertical boundaries (such as in your banner) is
to make sure each rectangle is completely snapped to the
grid and to export it with such resolution that the grid's
units have an integer unit-to-pixel ratio. For pt, this
would mean exporting at 72dpi or a multiplier of that. So,
if you fix ALL of your squares so that each shows integer X,
Y, W, H when you select it (right now many are slightly
misplaced or mis-sized), and then export your image at 72 or
144 dpi (instead of 122.95 dpi as you did), there will be no
AA gaps because there will be no AA, as each edge will be
exactly at a pixel boundary. So, it takes some planning and
some care, but it's easily doable.

Generally, even with best software in the world you need to
know some manual tricks if you want your artwork to look
perfect. Avoiding edge-to-edge boundaries and replacing them
with small overlaps is one of such tricks you need to learn
for vector graphics. Myself, I learned this long ago on an
early version of CorelXara (which was one of the earliest
vector editors with full antialiasing) and I haven't yet had
a chance to unlearn it, even though I used lots of different
vector editors since then.