Уменьшение глубины цвета в изображении не уменьшает размер файла?
Я использую этот код, чтобы уменьшить глубину изображения:
<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>
Первый вопрос: смещение, которое я даю функции, не является глубиной, верно?
во-вторых, когда я пытаюсь сохранить изображение после уменьшения глубины его цветов, я получаю тот же размер исходного изображения. Разве это не логично, что я должен получить файл с меньшим размером, или я ошибаюсь.
Это код, который я использую для сохранения измененного изображения:
<code>private Bitmap bitmapImage; public void SaveImage(string path) { bitmapImage.Save(path); } </code>