Re: [Gimp-developer] Thin lines using pencil

2001-09-02 Thread Sven Neumann

Hi,

[EMAIL PROTECTED] (Carsten Hammer) writes:

 I think there are more such obvious bugs that are revealed in special
 cases.

here is what you should do about this:

- file a bug-report on bugzilla.gnome.org so your report won't get lost
- send a patch that fixes the problem


Salut, Sven
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-09-01 Thread Carsten Hammer

Jay Cox wrote:

 Thanks for the report.  I'm shocked that it has taken this long for
 someone to complain about this.

I think there are more such obvious bugs that are revealed in special
cases.
Just think of the downscale bug I reported a very long time ago. I have
some (monochrome,huge) pictures that dont show anything if gimp scales
them down. Some of these pictures have only every 2,3,4,.. pixel set.
The simple gimp scale down algorithm is not suited for this. It has
never been fixed and I dont have a 3000x2000 pixel screen to work on
this pictures. I *have* to scale down and gimp is not really usable on
these kind of pictures. And if you then try to work through a slow
connection between your Xserver and the application server you find that
everything is slower than it should be (because gimp does not work
really on monochrome pictures? It seems it always throws color images to
the Xserver..). It seems xv is faster in this case, maybe it does a
smarter decision on how many colors it needs on the server.
Perhaps one day we even have these problems fixed..:)
ciao
Carsten

PS: Because I am no member of this mailing list please write to my email
adress if you want to answer.Thanks, Keep on the good work!
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-30 Thread Jay Cox

Sven Neumann wrote:
 
 Hi,
 
 Grzegorz Borowiak [EMAIL PROTECTED] writes:
 
  There could be problem if brush size is big and line has to be
  half-transparent. E.g. brush radius is 10 and intensity is 0.5. There
  would be 1-pixel-close overlapping brush hits, whose intensities would
  accumulate. But this problem can easily be compensated if we use more
  sophiscated tool_t function, which would reasonably decrease its intensity
  (simply dividing nominal intensity by radius size and then by sine/cosine
  value of line angle) for all pixels except two ends, and these two ends
  would be painted with full nominal intensity, but only half of brush would
  be painted (this half which does not overlap with any mid-line brush hit).
 
 I don't think this would work well. Instead I'd suggest to draw the
 brush totally opaque to intermediate tiles, then blend these with the
 choosen brush opacity onto the drawable. Might be more memory-intensive
 but should give perfect results. On the other hand it would diverge a
 lot from what happens if you draw a line by hand. Would it make sense
 to consider a line-drawing tool? I think it would be especially useful
 to stroke selections and paths. Our current approaches to stamp the
 brush at equidistant positions along the outline does not give pleasant
 results and all attempts to improve this will most probably only mess up
 the (already weird) code.

I agree. 

 Such a line-drawing tool wouldn't work with brushes but would have
 configurable line-width and cap settings. I might be wrong, but I think
 the ink tool might be suited reasonably good for proper line drawing.
 If it would have support for drawing straight lines using the Shift
 key, we could test it and this should be easy to implement.
 

For single pixel lines I think we should really go with a bresenham
type solution.

The antialiasing on the ink tools looks visually a little off to me.
not how easy it would be to fix that.

I have a design in mind for an AA bresenham line drawing function that
supports wide lines with end caps, mitred corners and customizable tip
profile shapes but I doubt I'll ever have time to code it up.


Jay Cox
[EMAIL PROTECTED]
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-30 Thread Sven Neumann

Hi Jay,

Jay Cox [EMAIL PROTECTED] writes:

 I have commited a fix for this bug to the 1.2 branch in CVS.

will you fix this in the HEAD branch too? The code is now in 
app/tools/gimppainttool.c.


Salut, Sven
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



[Gimp-developer] Thin lines using pencil

2001-08-29 Thread Grzegorz Borowiak

I have a problem with drawing lines with pencil. Horizontal and vertical
lines are OK, but slash lines are too thick. In zoom, they look like:

###
  ###
##
 ###
   ###
 ##
  ###
###

and IMO they should look like:

##
  ##
#
 ##
   ##
 #
  ##
##

In other words: line goes like rook in chess, but should go like queen.
Why? And how to force it to go like queen? Preview lines for measure tool
and for line draw are queen-like, so why actually drawn line is rook-like?
In addition, Photoshop draws queen-like lines when set to non-antialiased.

I have asked this question on gimp-user, but I haven't got solution.
Please, help me!

 _
Grzes  \___|___/
[EMAIL PROTECTED] (_)
http://gnu.univ.gda.pl/~grzes/
'Nam chodzi o odglos paszczowo.'  'Patataj patataj patata...'

annoy echelon fbi militia bomb action president mossad delta force
militia action anthrax operation fbi codes top secret /annoy echelon

___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Grzegorz Borowiak

On Wed, 29 Aug 2001, Simon Budig wrote:

 Please note, that these problems are already solved in the Gimps Paintcore.
 When you draw a line with the Paintbrush you will see that it is perfectly
 antialiased and the accumulating color problem is solved too (you can
 even disable this in the tool options).
 
 In fact it is this generality that creates the problems with the Pencil...

Yes, paintbrush lines work well. But with my approach, I suppose both
paintbrush and pencil lines would work well.

Or maybe as extraordinary exception for pencils use just Bresenham? It
will less general, but much neater. And implementing Bresenham is
extremely simple to do.

  How do you all feel about it? Is it a good idea, or not? I think you will
  be more able to implement it and insert in proper place in GIMP's source.
  If would use a lot of time to analyze sources (in fact, I would have to
  learn how to use GIMP sources and thouroughly study it) and find this
  proper place, and although this I would however have doubts if this is
  correct place and if it does not conflict with GIMP's internal
  architecture, assumptions and whatever.
 
 These deep gimp internals are quite powerful and compicated. I have not
 yet a full clue what happens there, but it involves a lot of
 Subsampling, filling an area with color/patterns/brush data, mask the
 area with the brush mask and finally apply the result to the drawable,
 respecting the current selection and the current paint mode.
 
 And I guess that even this is simplified...  :-)

What is done when I click with pencil on image? Those complex actions are
performed, and a dot is a result. What's a problem with implementing my
tool_t function as just triggering all those actions on certain pixel?

 This certainly won't make it into the 1.2-versions of Gimp. However,
 I think we should attack the problem in CVS-HEAD. But please be aware, that
 there is *much* work to do until a first 1.3.0 release happens.

:-(

IMHO ugly pencil lines are a major drawback of GIMP...

 _
Grzes  \___|___/
[EMAIL PROTECTED] (_)
http://gnu.univ.gda.pl/~grzes/
'Nam chodzi o odglos paszczowo.'  'Patataj patataj patata...'

annoy echelon fbi militia bomb action president mossad delta force
militia action anthrax operation fbi codes top secret /annoy echelon

___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Sven Neumann

Hi,

Grzegorz Borowiak [EMAIL PROTECTED] writes:

 Thank You guys. It seems drawing a good thin non-antialiased line is so
 foar not implemented, I hope it will be. I could do it, but it would take
 a long time for me to understand code and the whole conception of GIMP. 

right now pencil and paintbrush are exactly the same tool with the 
slight difference that the paintbrush calls gimp_paint_tool_paste_canvas()
with BrushApplicationMode == SOFT (or PRESSURE for pressure-sensitive 
painting) while the pencil uses HARD here. This leads to different ways
how the brush_mask is prepared. For SOFT mode the brush mask is subsampled
to the brush position using a 5x5 subsampling kernel while HARD mode
solidifies the brush by setting all pixels to full opacity that are 
non-NULL in the brush pixmap. 

The relevant code for painting can be found in app/tools/gimppainttool.c.

 There could be problem if brush size is big and line has to be
 half-transparent. E.g. brush radius is 10 and intensity is 0.5. There
 would be 1-pixel-close overlapping brush hits, whose intensities would
 accumulate. But this problem can easily be compensated if we use more
 sophiscated tool_t function, which would reasonably decrease its intensity
 (simply dividing nominal intensity by radius size and then by sine/cosine
 value of line angle) for all pixels except two ends, and these two ends
 would be painted with full nominal intensity, but only half of brush would
 be painted (this half which does not overlap with any mid-line brush hit).

I don't think this would work well. Instead I'd suggest to draw the
brush totally opaque to intermediate tiles, then blend these with the
choosen brush opacity onto the drawable. Might be more memory-intensive
but should give perfect results. On the other hand it would diverge a 
lot from what happens if you draw a line by hand. Would it make sense
to consider a line-drawing tool? I think it would be especially useful
to stroke selections and paths. Our current approaches to stamp the
brush at equidistant positions along the outline does not give pleasant
results and all attempts to improve this will most probably only mess up
the (already weird) code. 

Such a line-drawing tool wouldn't work with brushes but would have 
configurable line-width and cap settings. I might be wrong, but I think 
the ink tool might be suited reasonably good for proper line drawing. 
If it would have support for drawing straight lines using the Shift 
key, we could test it and this should be easy to implement.


Salut, Sven
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Simon Budig

Grzegorz Borowiak ([EMAIL PROTECTED]) wrote:
 On Wed, 29 Aug 2001, Simon Budig wrote:
 
  Please note, that these problems are already solved in the Gimps Paintcore.
  When you draw a line with the Paintbrush you will see that it is perfectly
  antialiased and the accumulating color problem is solved too (you can
  even disable this in the tool options).
  
  In fact it is this generality that creates the problems with the Pencil...
 
 Yes, paintbrush lines work well. But with my approach, I suppose both
 paintbrush and pencil lines would work well.
 
 Or maybe as extraordinary exception for pencils use just Bresenham? It
 will less general, but much neater. And implementing Bresenham is
 extremely simple to do.

As I said: I am not too familiar with the paintcore. I don't know how
easy it is to remove all subsampling magic - maybe it is as easy as
feeding a new set of coordinates to the paintcore.

 What is done when I click with pencil on image? Those complex actions are
 performed, and a dot is a result. What's a problem with implementing my
 tool_t function as just triggering all those actions on certain pixel?

The Pencil is a brush based tool (try selecting another brush and you will
see the difference). So it is not simply a dot as a result.
It is basically the same as the paintbrush, but with a different
interpretation of the mask of a brush. So implementing your scheme will break
the way the paintbrush works. I think it is *way* easier to just change the
way how the coordinates for the pencil are computed.

  This certainly won't make it into the 1.2-versions of Gimp. However,
  I think we should attack the problem in CVS-HEAD. But please be aware, that
  there is *much* work to do until a first 1.3.0 release happens.
 
 :-(
 
 IMHO ugly pencil lines are a major drawback of GIMP...

I agree with you there, but we have to be very careful to determine,
what is worthy enough to enter the stable series, since there already
is lots of printed documentation. Changing some fundamental interna
of a tool might also introduce bugs. It may be worth a try, but I doubt
that this will be done in 1.2.

Sorry if this sounds disappointing, but it would have been easier to
introduce this if you had asked for this a year ago (or so)...

Bye,
Simon

-- 
  [EMAIL PROTECTED]   http://www.home.unix-ag.org/simon/
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Branko Collin

On 29 Aug 2001, at 13:55, Branko Collin wrote:

[...]

Think before you post, I cannot say that enough to myself. The 
reported 'problem' of course only happens if you use a brush that 
gets more transparent to its outside than in its center. It may not 
be solvable (and a solution might introduce other problems). Still, I 
think it is odd that a mostly round brush should generate different 
results depending on the angle of the two connected lines. Maybe it 
is just a matter of redefining those brushes?

-- 
branko collin
[EMAIL PROTECTED]
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Stephen J Baker

On 29 Aug 2001, Sven Neumann wrote:

  and IMO they should look like:
 
  ##
##
  #
   ##
 ##
   #
##
  ##
 

 IMO what they should look like is:

  #
   #
#
 #
  #
   #
#

 essentally what we do when drawing lines is we move the brush along
 the line and draw points in equal distances. If the point does not
 fall exactly on the pixel grid, it gets wider. This is bad and thin
 lines drawn with the pencil really look akward. A possible solution
 would be to implement the pencil tool totally different from the
 paintbrush. Instead of drawing brush pixmaps onto the canvas at
 equidistant spots along the line as the paintbrush does, the pencil
 tool could use a real line-drawing algorithm (Bresenham). This would
 imply that our brushes couldn't be used with the pencil tool any
 longer since this algorithm would only work for rounded or square
 pencil tips (or am I wrong here?).

The problem with the 'placing overlapping brush pixmaps' approach is
only really obvious at very narrow line widths.

IMHO, the pencil tool should be left alone for consistancies' sake
and there should be a new tool to deal with the very special case
of drawing single-pixel-wide hard-edged lines.

This hypothetical gadget could use Bresenham's algorithm or something
like that because it wouldn't *NEED* to deal with pixmaps and need only
hit pixels dead-on.

 I really like this idea since the
 old functionality of the pencil tool could be easily implemented in
 the paintbrush (all we'd have to do is to add a Hard edge option
 like the Eraser has) and having a real line-drawing tool would be a
 major benefit.

Yes. That would work.


Steve Baker  (817)619-2657 (Vox/Vox-Mail)
L3Com/Link Simulation  Training (817)619-2466 (Fax)
Work: [EMAIL PROTECTED]   http://www.link.com
Home: [EMAIL PROTECTED]   http://web2.airmail.net/sjbaker1

___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Rebecca J. Walter


 IMHO, the pencil tool should be left alone for consistancies' sake
 and there should be a new tool to deal with the very special case
 of drawing single-pixel-wide hard-edged lines.
 
 This hypothetical gadget could use Bresenham's algorithm or something
 like that because it wouldn't *NEED* to deal with pixmaps and need only
 hit pixels dead-on.
 
  I really like this idea since the
  old functionality of the pencil tool could be easily implemented in
  the paintbrush (all we'd have to do is to add a Hard edge option
  like the Eraser has) and having a real line-drawing tool would be a
  major benefit.
 
 Yes. That would work.

If you make a new line tool, which would be awesome by itself, it would
also eliminate the repetitive stupid questions on gimp-user and #gimp
about how do i draw a straight line
AARGH!


___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] Thin lines using pencil

2001-08-29 Thread Jay Cox

Branko Collin wrote:

 
 If I draw several connected lines with the paint brush, the joints
 aren't always perfect. For instance, instead of:
 
   ***
 ***
 **
 
 *
 
 you get:
 
   ***
 ***
 *  ***
 **   ***
 *
 
 (exagerated for clarity)
 
 I don't think it is that big of a problem, because you would probably
 use the paintbrush more in photo like drawings than in line drawings,
 but maybe I am wrong about that, and this seemed a good place to
 mention this behaviour anyway. (Feel free to mention it is a
 'feature'.) :-)

Thanks for the report.  I'm shocked that it has taken this long for
someone to complain about this.

I have commited a fix for this bug to the 1.2 branch in CVS.

Jay Cox
[EMAIL PROTECTED]
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer