You'll have to keep an eye on the parameter count. The ellipse select requires one more parameter than the rectangle one. But yes, some of them should work... On 09/24/2010 06:37 PM, Ofnuts wrote: > The code should work for any shape of selection (for instance after a > text-to-selection). Actually the plugin this routine is part of hasn't > got much merit on rectangular/circular selections... > > > On 25/09/2010 00:27, Jerry Baker wrote: >> Ahh... autoformatting... this should be easier to read... (sorry) >> >> def create_border(image, selection_type='rectangle', size=1): >> is_selection, x1, y1, x2, y2 = pdb.gimp_selection_bounds(image) >> >> if is_selection: >> if size< 1: >> size = 1 >> if selection_type =='rectangle': >> pdb.gimp_rect_select(image, >> x1+size, >> y1+size, >> (x2-x1)-(size*2), >> (y2-y1)-(size*2), >> CHANNEL_OP_SUBTRACT, >> False, >> 0) >> elif selection_type == 'ellipse': >> pdb.gimp_ellipse_select(image, >> x1+size, >> y1+size, >> (x2-x1)-(size*2), >> (y2-y1)-(size*2), >> CHANNEL_OP_SUBTRACT, >> True, >> False, >> 0) >> else: >> gimp.message("Please make a selection...") >> >> def test_plugin(image, drawable): >> image.undo_group_start() >> >> # A rectangular selecion with default settings... >> create_border(image) >> >> # Ellipse with custom settings... Uncomment to activate >> #create_border(image, selection_type='ellipse', size=3) >> >> # Fill >> pdb.gimp_edit_fill(drawable, 0) >> pdb.gimp_selection_none(image) >> >> image.undo_group_end() >> >> On 09/24/2010 06:18 PM, Jerry Baker wrote: >>> Calculating a new selection from the current selection would be faster >>> (I think): >>> >>> def create_border(image, selection_type='rectangle', size=1): >>> is_selection, x1, y1, x2, y2 = pdb.gimp_selection_bounds(image) >>> >>> if is_selection: >>> if size< 1: >>> size = 1 >>> if selection_type =='rectangle': >>> pdb.gimp_rect_select(image, x1+size, y1+size, >>> (x2-x1)-(size*2), (y2-y1)-(size*2), CHANNEL_OP_SUBTRACT, False, 0) >>> elif selection_type == 'ellipse': >>> pdb.gimp_ellipse_select(image, x1+size, y1+size, >>> (x2-x1)-(size*2), (y2-y1)-(size*2), CHANNEL_OP_SUBTRACT, True, False, 0) >>> else: >>> gimp.message("Please make a selection...") >>> >>> def test_plugin(image, drawable): >>> image.undo_group_start() >>> >>> create_border(image) # A rectangular selecion with default >>> settings... >>> #create_border(image, selection_type='ellipse', size=3) # Or >>> Ellipse with custom settings... >>> >>> # Fill >>> pdb.gimp_edit_fill(drawable, 0) >>> pdb.gimp_selection_none(image) >>> >>> image.undo_group_end() > _______________________________________________ > 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