I’m trying to create a graphic in Sketch (a vector-based graphic design application). I export to PDF and this is what my original graphic looks like:

But when I set it as the image of an NSButton, it gets drawn like this:

Why does this occur? The right and bottom edges in particular are altered a lot. I’m not sure if this is a Cocoa drawing issue or an issue with my original graphic.
The problem is with (mis)alignment with the pixel grid and anti-aliasing. It looks like you’ve scaled the image so that the borders on the left, right, and bottom are roughly one pixel in thickness. However, the right and bottom borders are straddling the boundary between pixels. The result is that they contribute half their “darkness” to the pixel on one side of the boundary and the other half to the pixel on the other side of the boundary.
You should tweak either the proportions of the image or the size at which you’re drawing it to avoid that particular alignment. It looks as though it’s being rendered as roughly 10.5 pixels wide. You want it to be either 10 pixels or 11 pixels wide, so the right edge corresponds more closely to a pixel column.