Re: [Gimp-developer] Handling of transparent pixels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 16 Dec 2003 20:37:30 +0100, Henrik Brix Andersen <brix@xxxxxxxx> wrote:
> On Tue, 2003-12-16 at 17:59, Raphaël Quinet wrote:
> > Basically, the model that we should promote is:
> > - layer mask    => hiding mechanism, reversible
> > - alpha channel => pixels that are cleared have undefined RGB data,
> >                    not reversible (except for undo)
> > 
> > Breaking this model should be avoided, except in very special cases
> > (i.e. obscure features for hackers). 
> 
> I'm sorry, Raphaël, but I do not agree with you on this issue either. I
> don't see why we should limit the gimp when there is no, at least to me,
> obvious reason to do so.

Of course I see this from a different point of view: by avoiding a
mistake that was recently introduced, I am trying to make sure that
the GIMP will not be limited in the future by the constraints that are
implied by an incorrect perception of the alpha channel.  With the
right model, we can make the GIMP more efficient.

> I think you will have to accept the fact that this proposed change will
> not make it into gimp, at least not at this point in development.

This discussion is not so much about a specific change, but more about
what model or perception we should promote now and in the future.

But as you mention a "proposed change", I will just repeat that this
discussion started because of a change that was introduced during the
feature freeze and that is (IMHO) controversial and goes against the
model that we should try to promote.  I was hoping that more
developers would see that the rest of the world around us (e.g.,
Photoshop) does things in the right way and that we should not
introduce new features that have not be thought out carefully and that
break this model (especially when the same results can be achieved in
a better way, with a different implementation).

> Allow
> me to refer to the minutes of the gimpcon meetings -
> http://developer.gimp.org/gimpcon/2003/minutes-1.html#decisions - where
> we agreed not to continue discussions just for the sake of the
> discussion. I think we have all had a chance to comment on the proposed
> changes at this point, and I suggest that we leave it be.

Yes, I thought about that.  That's why I waited a bit before posting
what will be my last contribution to this discussion (for this year,
at least).  I wanted to be see if anybody would post new arguments.
Interestingly, the only new arguments (from Pedro, about Photoshop)
are actually supporting what I wrote, even if Pedro does not like it.

> I actually think Joao S. O. Buenos patch to the PNG plug-in is a nice
> addition/work around the optimization problem - I have yet to try it
> out, though.

I haven't tried it either, but it could indeed be a nice addition to
the PNG plug-in.  But alas this is far from solving the real problem,
which is a problem of model/perception.  The real problem is that some
GIMP developers and users see alpha as a simple hiding mechanism,
which is wrong (or not always right, depending on your point of view).
Perceptions are unfortunately very hard to change.

As this will be my last message in this thread, I would like to end it
with a question (but I suggest that you do not respond - just think
about it): Why do we need layer masks in the GIMP?  Wouldn't it be
easier to paint directly into the alpha channel and simply get rid of
this intermediate step (mask)?  There are no conceptual differences
between the alpha channel and masks (except for the one at the center
of this discussion) so why do we need both if the same operations
could be performed with both?  Why were masks introduced in the first
place?

According to the books that I read (or just browsed) about Photoshop
and other programs, a similar question can be easily answered for
those programs: although both the alpha channel and the masks
influence the opacity of the pixels, a mask is usually associated with
visibility while alpha is usually associated with presence (and one
cannot increase the presence of something that is not there).  That's
why the masks are there, to allow the user to increase or decrease the
visibility of the pixels at will without any loss of information.
But if any changes are commited to the alpha channel, then the opacity
of the pixels cannot be increased anymore (except by painting over
them or undoing their removal).  The authors of these programs
(especially Photoshop) were very careful about applying this model in
a consistent way throughout the application.  That's why masks are not
treated in the same was as the alpha channel.  That's why one is not
encouraged to edit the alpha channel directly (there are ways around
that if you know how to do it).  If you think about it, I believe that
it makes a lot of sense.  Also, instead of promoting an "anti-erase"
mode, someone invented an "undo brush" that can perform the same
functions and even much more in most cases.  They carefully avoided to
break this model (masks for visibility/hiding, alpha for presence)
because they thought that the improved consistency in the user
interface was worth the effort (plus the potential gains in
efficiency, not exposing undefined or arbitrary data to the user,
etc).

I hope that it is not too late to correct the mistakes made in the GIMP.
But it looks like this is not the right time, because we have taken
extreme positions in this discussion and most participants are now
blinded by their own arguments (I count myself in there).  Anyway, I
have already written too much about this topic, so I will shut up for
now.  ;-)

-Raphaël

[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux