Usando Graphics.DrawImage () para desenhar imagem com transparência / canal alfa

Estou copiando uma imagem. (Meu código real é redimensionar a imagem, mas isso não é relevante para a minha pergunta.) Meu código é algo como isto.

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);
}

Isso parece funcionar muito bem, a menos quesrc é carregado a partir de uma imagem com transparências (como GIF) ou um canal alfa (como PNG).

Como posso obterDrawImage() transferir as transparências / canal alfa para a nova imagem e guardá-las quando eu salvar o arquivo?

questionAnswers(2)

yourAnswerToTheQuestion