Re: Of Palettes and Plug-ins

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

 



On 7 September 2013 03:20, Warren Turkal <wt@xxxxxxxxxxxxxxxx> wrote:
> On Fri, Sep 6, 2013 at 11:20 AM, Joao S. O. Bueno <gwidion@xxxxxxxxxx>
> wrote:
>>
> From the above comment, I assume that what I want to do will be hard. Any
> pointers on what would need to change to make it more useful? I'd be happy
> to try to do some of the work if it ends in making possible what I want to
> do.

Let me say it again:
The "string" IS the Pallete as far as any code relating to GIMP via PDB is
concerned. It works more like an ID than as a name.  And the PDB is
quite complete in what relates to Palette
manipulation.


Check this Python-fu Session - it creates a new palette and adds entries to it,
just as you want:


GIMP 2.9.1 Python Console
Python 2.7.3 (default, Jul 24 2012, 11:41:40)
[GCC 4.6.3 20120306 (Red Hat 4.6.3-2)]
>>>
>>> pal_id = "warren palette"
>>>
>>> pal_id = pdb.gimp_palette_new(pal_id)
>>> print pal_id
warren palette
>>> pdb.gimp_palette_add_color(pal_id, "black", (0,0,0))
Traceback (most recent call last):
  File "<input>", line 1, in <module>
error: procedure not found
>>> pdb.gimp_palette_add_entry(pal_id, "black", (0,0,0))
0
>>> pdb.gimp_palette_add_entry(pal_id, "golden yellow", (255,230,0))
1
>>> pdb.gimp_palette_add_entry(pal_id, "pinkish", (255,200,150))
2
>>>

And voilá- when I look in the Palette's dialog, in GIMP, the new
Palette _is there_,
with all three colors, fully featured as any other GIMP's palette
and with all the export options enabled for it.

Just take care with the line that goes:
>>> pal_id = pdb.gimp_palette_new(pal_id)

It is important to store the ID as the return value of the call to
gimp_palette_new,
because it the palette name you attempt to create already exists, GIMP will
automatically modify the name with a numbering scheme - and the modified name
will be the ID for that pallete.

In practice, a Python Script manipulating Palletes never needs to do
anything with the
value passed around as a PF_PALETTE - (if it is a plug-in to
manipulate them in place, that is) -
it is just passed into the plug-in, and it is iused as an ID for all
Palette related calls.

BTW, it just occurred me that you might not yet be aware of the
procedure-browser functionality:
in GIMP, just open help->procedure browser - now type "palette" in the
search box -
there you are, all palette related calls available for your plug-in.




>
>>
>> But having the string passed around between plug-ins works as nicely
>> as it can be - I had written some palette creating/exporting a few
>> years ago.
>
>
> Passing around a string doesn't really suit the use case I want to
> implement. I basically want the plugin to be able to return a palette that
> the core code registers if the running of the plugin is successful.
>
> Are there any pointers for doing this kind of thing that I should be looking
> at?
>
> Thanks,
> wt
_______________________________________________
gimp-developer-list mailing list
List address:    gimp-developer-list@xxxxxxxxx
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list





[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