Uso de Graphics.DrawImage () para dibujar imagen con transparencia / canal alfa

Estoy copiando una imagen. (Mi código real está cambiando el tamaño de la imagen, pero eso no es relevante para mi pregunta). Mi código se ve así.

Image src = ...

using (Image dest = new Bitmap(width, height))
{
    Graphics graph = Graphics.FromImage(dest);
    graph.InterpolationMode = InterpolationMode.HighQualityBicubic;
    graph.DrawImage(src, 0, 0, width, height);
    dest.Save(filename, saveFormat);
}

Esto parece funcionar muy bien a menos quesrc se carga desde una imagen con transparencias (como GIF) o un canal alfa (como PNG).

Como puedo conseguirDrawImage() ¿Para transferir las transparencias / canal alfa a la nueva imagen y luego guardarlas cuando guardo el archivo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta