Вам просто нужно заполнить выделение на сегменты:
pdb.gimp_drawable_edit_fill(drawable, fill_type)
Это заполняет выделение текущим цветом переднего плана / фона (в зависимости от fill_type). Если вам нужно установить этот цвет в вашем плагине:
import gimpcolor
color=gimpcolor.RGB(0,255,0) # integers in 0->255 range)
color=gimpcolor.RGB(0.,1.,0.) # Floats in 0.->1. range)
pdb.gimp_context_set_foreground(color)
Обратите внимание, что это ответ на ваш технический вопрос, но вполне вероятно, что это не то, что вы хотите сделать (пиксельные края, оставшиеся ореолы и т. Д.) 1013 * ...). Хорошая методика обычно состоит в том, чтобы заменить исходный цвет прозрачностью (рисовать в режиме Color Erase
), а затем заполнить отверстия новым цветом в режиме Behind
. Например, чтобы заменить цвет FG на цвет BG:
pdb.gimp_edit_bucket_fill(layer,FG_BUCKET_FILL,COLOR_ERASE_MODE,100.,0.,0,0.,0.)
pdb.gimp_edit_bucket_fill(layer,BG_BUCKET_FILL,BEHIND_MODE, 100.,0.,0,0.,0.)
Если вы не хотите изменять другие смешанные цвета на изображении, оставьте выбор цветов, увеличьте его на один пиксель, прежде чем применять две покрасочные работы. Увеличение выделения позволяет применять указанные выше операции к пикселям по краям, где это действительно важно.