A redução da profundidade de cor em uma imagem não reduz o tamanho do arquivo?

Eu uso este código para reduzir a profundidade de uma imagem:

<code>public void ApplyDecreaseColourDepth(int offset)
{
    int A, R, G, B;

    Color pixelColor;

    for (int y = 0; y < bitmapImage.Height; y++)
    {
        for (int x = 0; x < bitmapImage.Width; x++)
        {
            pixelColor = bitmapImage.GetPixel(x, y);

            A = pixelColor.A;

            R = ((pixelColor.R + (offset / 2)) - ((pixelColor.R + (offset / 2)) % offset) - 1);

            if (R < 0)
            {
                R = 0;
            }

            G = ((pixelColor.G + (offset / 2)) - ((pixelColor.G + (offset / 2)) % offset) - 1);

            if (G < 0)
            {
                G = 0;
            }

            B = ((pixelColor.B + (offset / 2)) - ((pixelColor.B + (offset / 2)) % offset) - 1);

            if (B < 0)
            {
                B = 0;
            }

            bitmapImage.SetPixel(x, y, Color.FromArgb(A, R, G, B));
        }
    }
}
</code>

primeira pergunta é: o deslocamento que eu dou a função não é a profundidade, é isso mesmo?

a segunda é que, quando tento salvar a imagem depois de reduzir a profundidade de suas cores, obtenho o mesmo tamanho da imagem original. Não é lógico que eu consiga um arquivo com tamanho menor ou estou errado?

Este é o código que eu uso para salvar a imagem modificada:

<code>private Bitmap bitmapImage;

public void SaveImage(string path)
{
    bitmapImage.Save(path);
} 
</code>

questionAnswers(6)

yourAnswerToTheQuestion