¿Reducir la profundidad de color en una imagen no reduce el tamaño del archivo?

Utilizo este código para reducir la profundidad de una imagen:

<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>

La primera pregunta es: el desplazamiento que le doy a la función no es la profundidad, ¿verdad?

la segunda es que cuando trato de guardar la imagen después de reducir la profundidad de sus colores, obtengo el mismo tamaño que la imagen original. ¿No es lógico que obtenga un archivo de menor tamaño o me equivoque?

Este es el código que utilizo para guardar la imagen modificada:

<code>private Bitmap bitmapImage;

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

Respuestas a la pregunta(6)

Su respuesta a la pregunta