Это возможно и даже тривиально, но я не знаю ни одного приложения, чтобы выполнить эту задачу специально.
Причина, по которой размер файла изменяется при повороте, заключается в том, что файлы TIFF кодируются без потерь, поскольку можно было бы сжимать поток компонентов пикселей из одного угла изображения в противоположный. Если вы рассматриваете кодирование по длине (RLE), которое является обычной кодировкой TIFF, легко понять, почему одно и то же изображение не будет сжиматься до одинакового размера после поворота. В равной степени вероятно, что размер файла увеличится, а не уменьшится.
Хотя есть простой способ обойти это, и это просто изменить тег, который говорит, как пиксели упорядочены в изображении. Простое изменение тега с упорядочения по строке на эквивалентное упорядочение по столбцу позволяет эффективно поворачивать изображение без каких-либо изменений в пиксельных данных. Вы можете прочитать подробности о формате TIFF здесь , просто найдите тег 274 (Ориентация).
Честно говоря, я думал, что никто не использует пиксели памяти, ориентированные на столбцы, поэтому, когда я изначально писал кодек TIFF, я упустил эту возможность для простоты. Как это и случилось, однажды мы получили такое изображение в формате TIFF, и мой код действительно вылетел! Надеюсь, что не многие другие разработчики воспользовались этим сокращением. Оказывается, что рассматриваемый файл был получен со сканера, который всегда выполнял сканирование и кодирование всегда одинаково, но устанавливал флаг ориентации в зависимости от того, был ли он загружен в полосу с кадрами в альбомной или портретной ориентации.