JpegBitmapEncoder deixa cinza no final do arquivo?

Eu estou trabalhando com os componentes de imagem do WPF em uma tentativa de fazer alguma manipulação de imagem simples. Estou seguindo aproximadamente o artigo da MS sobreComo codificar e decodificar uma imagem JPEG.

Meu código é simples:

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;

O trecho de código cria um artefato ímpar, em que as últimas "linhas" são um bloco de cinza sólido. É quase como se o codificador tivesse ficado sem pixels para escrever. A quantidade de cinza varia por um fator de 2x ou 3x dependendo da imagem que eu uso como entrada (várias resoluções, jpeg, png) ou das opções que eu habilito (forçando a resolução na decodificação). O efeito líquido é o mesmo, no entanto, como você pode ver nas imagens abaixo.

Minha imagem de origem é:

Imagem de saída (observe a faixa cinza na parte inferior):

Oque esta acontecendo aqui? Como obtenho um convert limpo?

questionAnswers(1)

yourAnswerToTheQuestion