"but still slightly fudges the righthand edge of smaller bitmaps"
It's the anti-aliasing. Since your small button has a fixed dimension, it can't create proper anti-aliased objects past the right/bottom edge of the graphic so it appears to have a harder edge there. Bicubic is even worse, because it requires a grid of pixels as a sample (e.g. a 4x4) then it creates a new value in the downsampled image... however, when it gets to the right or bottom edge, if it doesn't have that full 4x4 grid to sample, it duplicates the last available data (i.e te last column/row of pixels) to make up the sample size so you can see that it actually looks ike it's repeating a copy of the last row/colum of pixels... Most noticebale on small objects.
If your buttons were vector, this wouldn't happen, of course. 🙂
... View more