On Fri, Sep 24, 2010 at 11:19 AM, Ofnuts <ofn...@laposte.net> wrote:
>  Hi,
>
> My code needs to do a one-pixel-wide selection, at distance "x" from the
> current selection.  This looks a lot like a border selection except that
> the border selection creates at best a two-pixel wide ribbon and I only
> want one (but if I'm wrong, please tell me how to :-)
>
> So far my code goes like this:
>
> # Selects pixels that are between x and x+1 pixels from
> # the original selection. Bumping the selection by one
> # each time doesn't work, a small circle degenerates into
> # a square with rounded corners instead of a big circle.
>     def select_ribbon(self,image,selection,dist):
>         pdb.gimp_selection_load(selection)
>         pdb.gimp_selection_grow(image,dist+1)
>         outer=pdb.gimp_selection_save(image)
>         pdb.gimp_selection_load(selection)
>         pdb.gimp_selection_grow(image,dist)
>         inner=pdb.gimp_selection_save(image)
>         pdb.gimp_channel_combine_masks(outer,inner,CHANNEL_OP_SUBTRACT,0,0)
>         pdb.gimp_selection_load(outer)
>         image.remove_channel(outer)
>         image.remove_channel(inner)
>
> That works, but can be slow (especially since it's at the core of a
> loop). Is there any better way? Or useless code to jettison?
>
> Next improvement is to create a 3-pixels selection and feather it one
> pixel. Anything to be wary of?

Hmm..this _will_ be slow. :-)

You can speed it up by making a copy of your drawable to another
image, disable the undo system on this new image  and perform your
cations above, before copying the results back to the original image -
but it is about it.
Maybe you can perform the whole loop in the copy with undo disabled -
but I don't know your intent.

  js
  -><-


>
> --
> Ofnuts
>
> _______________________________________________
> Gimp-developer mailing list
> Gimp-developer@lists.XCF.Berkeley.EDU
> https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer
>
_______________________________________________
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer

Reply via email to