Jump to content

Any way to get the shape files for the shapes that come with paint.net into shapemaker?


Recommended Posts

I am still a relatively new paint.net user...scratch that, I AM a new paint.net user. I downloaded paint.net a few days ago with the intention of creating speech bubbles to use for my pics, After completely missing the shape tool and downloading dpy's speech bubble plugin, liking the plugin for the most part and then learning you actually can do the speech bubbles with the shape tool after I was somewhat disappointed by the limited options for the speech bubble plugin's tail options, I was wondering, using the shapemaker, is there a way to get the shapes into there so I can create speech bubbles with more tail options easily without having to try drawing? (I suck at drawing...at least, I think I do, so I'd rather use premade tools)

Link to comment
Share on other sites

Hello @Sonario648 and Welcome to the forum :)


I note you already have dpy's Plugin, but, FYI - you can find additional Shapes here.


If you have a speech bubble you like, but want to re-draw/add to it, you can open it in paint.net, then go to Shapemaker and use the drawing aids to create your own.





This is a great video to show you how Shapemaker works.







How I made Jennifer & Halle in Paint.net

My Gallery | My Deviant Art

"Rescuing one animal may not change the world, but for that animal their world is changed forever!" anon.

Link to comment
Share on other sites

  • 1 year later...

Most of the built-in shapes are defined in code, not with XAML like the plugin shapes.


e.g. here's the Heart shape's code

internal sealed class HeartShape
    : PdnGeometryShapeBase
    private static Geometry unitGeometry;
    private static Geometry UnitGeometry
            if (unitGeometry == null)
                unitGeometry = CreateUnitGeometry().EnsureFrozen();

            return unitGeometry;

    public HeartShape()
        : base(PdnResources.GetString("HeartShape.Name"), ShapeCategory.Symbols)

    protected override Geometry OnCreateGuideGeometry(RectDouble bounds, IDictionary<string, object> settingValues)
        return UnitGeometry;

    private static Geometry CreateUnitGeometry()
        PathGeometry unitGeometry = new PathGeometry();
            PathFigure figure = new PathFigure();
                figure.IsClosed = true;

                figure.StartPoint = new Point2Double(11.5, 20.5834);

                figure.Segments.Add(new BezierSegment(new Point2Double(10.3333, 16.25), new Point2Double(13.6667, 12.9167), new Point2Double(16.5, 12.4167)));
                figure.Segments.Add(new BezierSegment(new Point2Double(19.3334, 11.9167), new Point2Double(21.6667, 14.25), new Point2Double(24, 16.5833)));
                figure.Segments.Add(new BezierSegment(new Point2Double(26.3334, 14.25), new Point2Double(28.6667, 11.9167), new Point2Double(31.5, 12.4167)));
                figure.Segments.Add(new BezierSegment(new Point2Double(34.3333, 12.9167), new Point2Double(37.6666, 16.25), new Point2Double(36.5, 20.5833)));
                figure.Segments.Add(new BezierSegment(new Point2Double(35.3333, 24.9167), new Point2Double(29.6667, 30.25), new Point2Double(24, 35.5833)));
                figure.Segments.Add(new BezierSegment(new Point2Double(18.3334, 30.25), new Point2Double(12.6667, 24.9167), new Point2Double(11.5, 20.5834)));


        return unitGeometry;


A few of them do use the path mini-language, but that's usually avoided for performance reasons. Some shapes are weird/complex enough that it's better to use it though, e.g. the Gear shape creates its geometry like so,


        private static Geometry CreateUnitGeometry()
            return new FlattenedGeometry()
                FlatteningTolerance = 0.0001,
                Geometry = Geometry.Parse(
                    // Gear outline
                      M 37.6289,0 
                      L 49.6289,-0.000976563 
                      L 52.8506,10.8311 
                      C 55.3838,11.5439 
                      L 70.0654,8.37012
                      L 78.5518,16.8545 
                      L 73.1934,26.749 
                      C 74.4844,29.0117 
                      L 87.251,37.252 
                      L 87.251,49.252 
                      L 76.4746,52.457
                      C 75.7588,55.1113 
                      L 78.8838,70.0645 
                      L 70.3994,78.5518 
                      L 60.4404,73.1582 
                      C 58.0811,74.5029 
                      L 49.624,87.2549
                      L 37.624,87.2549 
                      L 34.373,76.3232 
                      C 31.7061,75.5713 
                      L 16.8574,78.5488 
                      L 8.37207,70.0635 
                      L 13.8262,59.9912
                      C 12.5264,57.6357 
                      L 0,49.251 
                      L 0,37.251 
                      L 10.9854,33.9834 
                      C 11.7334,31.4365 
                      L 8.70313,16.8564 
                      L 17.1885,8.37012 
                      L 27.1982,13.791 
                      C 29.4561,12.542 
                        34.4072,10.8311 Z" +
                    // Inner circle
                    @"M    43.62644869,59.92630997
                      C    52.62744869,59.92630997
                      C    59.92434869,34.62650997
                      C    34.62644869,27.32760997
                      C    27.32664869,52.62740997
                        43.62644869,59.92630997 Z")


(some of the spacing/indentation got muddled, of course)

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...