On Fri, Sep 24, 2010 at 11:19 AM, Ofnuts <ofnuts@xxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxxx > https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer > _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer