public static Bitmap Resize(this Bitmap bm, int w, int h, Alignment origin = Alignment.TopLeft)
{
int x = 0;
int y = 0;
if (origin == Alignment.Right ||
origin == Alignment.TopRight ||
origin == Alignment.BottomRight)
x = w - bm.Width;
else if (
origin == Alignment.Center ||
origin == Alignment.Top ||
origin == Alignment.Bottom)
x = (w - bm.Width) / 2;
if (origin == Alignment.Bottom ||
origin == Alignment.BottomLeft ||
origin == Alignment.BottomRight)
y = h - bm.Height;
else if (
origin == Alignment.Center ||
origin == Alignment.Left ||
origin == Alignment.Right)
y = (h - bm.Height) / 2;
return bm.SubImage(-x, -y, w, h);
}