Прошло некоторое время с тех пор, как я сделал редактирование / сохранение изображения, но, если я помню, правильные PNG отличаются от большинства. Я думаю, что вы должны использовать настоящий FileStream.
РЕДАКТИРОВАТЬ: Ах, нашел пример здесь
FileStream imageStream= new FileStream( filename, FileMode.Create );
myBitmap.Save( imageStream, ImageFormat.Png );
imageStream.Close();
РЕДАКТИРОВАТЬ 2: После более подробного изучения этого вопроса, я думаю, что промежуточный шаг требуется только при определенных обстоятельствах.
Также возможно, что, поскольку вы используете «MakeTransparent», он перехватывает индексированную альфу, но пытается сохранить на основе фактического альфа-значения каждого пикселя. Вы можете попробовать установить альфа-значения изображения.