¿JpegBitmapEncoder deja una raya gris al final del archivo?

Estoy trabajando con los componentes de imagen de WPF en un intento de hacer algo de manipulación de imagen simple. Estoy siguiendo aproximadamente el artículo de MS enCómo codificar y decodificar una imagen JPEG.

Mi código es simple:

BitmapImage bi = new BitmapImage();

bi.BeginInit();
bi.UriSource = new Uri("D:\\Temp\\StackOverflowCapture.png");
//bi.DecodePixelWidth = 1024;
//bi.DecodePixelHeight = 768;
bi.EndInit();

var jpg                  = new JpegBitmapEncoder();
    jpg.QualityLevel     = 90;
    //jpg.FlipHorizontal = false;
    //jpg.FlipVertical   = false;
    jpg.Frames.Add(BitmapFrame.Create(bi));

var fs = new FileStream("D:\\Temp\\StackOverflow_Result.jpg", FileMode.Create);

jpg.Save( fs );
jpg = null;

El fragmento de código crea un artefacto extraño, donde las últimas "líneas" son un bloque de gris sólido. Es casi como si el codificador simplemente se quedara sin píxeles para escribir. La cantidad de gris varía en un factor de 2x o 3x según la imagen que use como entrada (varias resoluciones, jpeg, png) o las opciones que habilito (forzando la resolución en la decodificación). Sin embargo, el efecto neto es el mismo, como se puede ver en las imágenes a continuación.

Mi imagen de origen es:

Imagen de salida (note la banda gris en la parte inferior):

¿Que está pasando aqui? ¿Cómo consigo un converso limpio?

Respuestas a la pregunta(1)

Su respuesta a la pregunta