Загружаемое изображение кодируется в определенном формате (например, JPEG) и с определенным качеством сжатия (где лучшее качество равно большему размеру файла). Когда вы сохраняете его после поворота, вы указываете потенциально совершенно другой формат и качество сжатия, отсюда и разница в размере.
Я не думаю, что есть какой-либо способ гарантировать одинаковый размер, если только входные и выходные файлы не являются несжатыми растровыми изображениями, но вы, вероятно, по крайней мере можете попытаться выяснить, какой формат и качество использовались для исходного изображения и используйте эти настройки при повторном сохранении файла с помощью bitmap.compress. Это должно дать вам размер файла в том же приблизительном поле как минимум.