Posts: 2
Threads: 1
Joined: Jul 2023
Reputation:
0
Operating system(s):
Gimp version: 2.10
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.
Posts: 6,350
Threads: 274
Joined: Oct 2016
Reputation:
565
Operating system(s):
Gimp version: 2.10
07-31-2023, 11:56 AM
(This post was last modified: 07-31-2023, 12:33 PM by Ofnuts.)
(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:
- get the path, and get the polygon approximation of the strokes (gimp_vectors_stroke_interpolate) and then use that with convolve()
- 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).
Posts: 2
Threads: 1
Joined: Jul 2023
Reputation:
0
Operating system(s):
Gimp version: 2.10
(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:
- get the path, and get the polygon approximation of the strokes (gimp_vectors_stroke_interpolate) and then use that with convolve()
- 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.
Posts: 6,350
Threads: 274
Joined: Oct 2016
Reputation:
565
Operating system(s):
Gimp version: 2.10
07-31-2023, 05:13 PM
(This post was last modified: 07-31-2023, 05:14 PM by Ofnuts.)
(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:
- get the path, and get the polygon approximation of the strokes (gimp_vectors_stroke_interpolate) and then use that with convolve()
- 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).
|