Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
fading text layer
#1
Hi, I am new to this forum so if I my question is in the wrong section, well, sorry I guess!

I have a pdf form to fill like 500 times and I thought using a gimp python plugin is the way to do it. I have developed the said plugin and I can successfully fill the form except that the text layers I am adding are too sharp. Before I save the file manually, I usually use the blur tool to make the text look like it was filled with a pen. I have tried to do this in the plugin but I can't get i right. I am using the gimp.convolve() function. I guess my problem is obtaining the stroke points of the text layer. Can somebody please help me. Thanks.
Reply
#2
(07-31-2023, 09:39 AM)mwas Wrote: Hi, I am new to this forum so if I my question is in the wrong section, well, sorry I guess!

I have a pdf form to fill like 500 times and I thought using a gimp python plugin is the way to do it. I have developed the said plugin and I can successfully fill the form except that the text layers I am adding are too sharp. Before I save the file manually, I usually use the blur tool to make the text look like it was filled with a pen. I have tried to do this in the plugin but I can't get i right. I am using the gimp.convolve() function. I guess my problem is obtaining the stroke points of the text layer. Can somebody please help me. Thanks.

It would be easier with  pdb.plug_in_gauss(image, drawable, horizontal, vertical, method).

But perhaps using dark gray instead of black, or reducing the layer opacity a bit would work just as well.

If you want to stroke the convolve tool along the text path outline, two solutions:

  1. get the path, and get the polygon approximation of the strokes (gimp_vectors_stroke_interpolate) and then use that with convolve()
  2. use the path directly with gimp_drawable_edit_stroke_item() after a gimp_context_set_paint_method('gimp-convolve') (but I don't know how to set the parameters to the convolve operation, there is nothing in gimp-context-* for this).
Reply
#3
(07-31-2023, 11:56 AM)Ofnuts Wrote: It would be easier with  pdb.plug_in_gauss(image, drawable, horizontal, vertical, method).

But perhaps using dark gray instead of black, or reducing the layer opacity a bit would work just as well.

If you want to stroke the convolve tool along the text path outline, two solutions:

  1. get the path, and get the polygon approximation of the strokes (gimp_vectors_stroke_interpolate) and then use that with convolve()
  2. use the path directly with gimp_drawable_edit_stroke_item() after a gimp_context_set_paint_method('gimp-convolve') (but I don't know how to set the parameters to the convolve operation, there is nothing in gimp-context-* for this).
I tried the pdb.plug_in_gauss() but I couldn't see any discernible difference may be I was doing it wrongly. 
For the colours I am using a variation of colours (I am simulating filling the forms by hand so I am using different colours with different opacity levels and different handwriting fonts). I will try the solutions and see later.

NB: The gimp.convolve() function's parameters are: 
drawable  - DRAWABLE,
pressure - FLOAT,
convolve-type - INT32 
num-strokes - INT32  Number of stroke control points (count each coordinate as 2 points) (num-strokes >= 2)
strokes - FLOATARRAY - Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }

it is the number of strokes and strokes parameters that I have a problem with.
Reply
#4
(07-31-2023, 04:57 PM)mwas Wrote:
(07-31-2023, 11:56 AM)Ofnuts Wrote: It would be easier with  pdb.plug_in_gauss(image, drawable, horizontal, vertical, method).

But perhaps using dark gray instead of black, or reducing the layer opacity a bit would work just as well.

If you want to stroke the convolve tool along the text path outline, two solutions:

  1. get the path, and get the polygon approximation of the strokes (gimp_vectors_stroke_interpolate) and then use that with convolve()
  2. use the path directly with gimp_drawable_edit_stroke_item() after a gimp_context_set_paint_method('gimp-convolve') (but I don't know how to set the parameters to the convolve operation, there is nothing in gimp-context-* for this).
I tried the pdb.plug_in_gauss() but I couldn't see any discernible difference may be I was doing it wrongly. 
For the colours I am using a variation of colours (I am simulating filling the forms by hand so I am using different colours with different opacity levels and different handwriting fonts). I will try the solutions and see later.

NB: The gimp.convolve() function's parameters are: 
drawable  - DRAWABLE,
pressure - FLOAT,
convolve-type - INT32 
num-strokes - INT32  Number of stroke control points (count each coordinate as 2 points) (num-strokes >= 2)
strokes - FLOATARRAY - Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }

it is the number of strokes and strokes parameters that I have a problem with.


The strokes parameter is a "flat" list of coordinate pairs: [x1,y1,x2,y2,x3,y3] and the num_strokes parameter is the length of that list (6, here), so, in python, the same as len(strokes).
Reply


Forum Jump: