Могу ли я вращать сжатые с потерями фотографии, которые я просматриваю в Windows Photo Viewer, не беспокоясь о потере еще большей информации для сжатия?
Могу ли я вращать сжатые с потерями фотографии, которые я просматриваю в Windows Photo Viewer, не беспокоясь о потере еще большей информации для сжатия?
Ответы:
Если размеры изображения кратны 8 (или 16, если используется подвыбор цветности), то повороты без потерь. В противном случае невозможно повернуть изображение без повторного вычисления блоков, т.е. повторного сжатия изображения, что приводит к потерям.
Причиной этого является то, что изображения в формате JPEG разбиты на серии блоков 8x8 или 16x16, которые сжимаются по отдельности. Неполные блоки допускаются только по правому и нижнему краю. Таким образом, если ваше изображение не является точным кратным 8/16, оно будет содержать неполные блоки, которые после поворота окажутся на неправильном краю.
Я подтвердил приведенное выше утверждение, используя версию Windows Photo Viewer, поставляемую с Windows 7. Я использовал два изображения цветового шума. Одно изображение было 256x256, то есть оба размера, кратные 8. Другое изображение было тем же, но обрезано до 253x253, то есть ни один размер не был кратен 8. Вот изображения:
Затем я выполнил четыре поворота против часовой стрелки, закрывая просмотрщик фотографий после каждого поворота, чтобы убедиться, что изображение было сохранено в повернутом состоянии.
Нет необходимости выполнять вычитание, чтобы увидеть разницу с 253-пиксельным изображением, оно заметно темнее и мутнее!
Разница на другом изображении выглядит так:
то есть изображения идентичны, вращения были без потерь.