C #: dibuje un mapa de bits en otro, con transparencia

Tengo dos mapas de bits, llamados largeBmp y smallBmp. Quiero dibujar smallBmp en largeBmp, luego dibujar el resultado en la pantalla. Los píxeles blancos de SmallBmp deben ser transparentes. Aquí está el código que estoy usando:

public Bitmap Superimpose(Bitmap largeBmp, Bitmap smallBmp) {
    Graphics g = Graphics.FromImage(largeBmp);
    g.CompositingMode = CompositingMode.SourceCopy;
    smallBmp.MakeTransparent();
    int margin = 5;
    int x = largeBmp.Width - smallBmp.Width - margin;
    int y = largeBmp.Height - smallBmp.Height - margin;
    g.DrawImage(smallBmp, new Point(x, y));
    return largeBmp;
}

¡El problema es que el resultado se vuelve transparente donde sea que smallBmp fuera transparente! Solo quiero ver a través de largeBmp, no a lo que hay detrás.

Respuestas a la pregunta(2)

Su respuesta a la pregunta