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>