Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.129.13.201] |
|
Сообщ.
#1
,
|
|
|
Если я правильно понял где-то в хидере файла должны быть 2 байта orientation
orientation может быть от 1 до 8 Хочу повернуть существующую картинку на 180 градусов Какое смещение у этих двух байт?? Или все таки поворот возможен только если проводить матричные преобразования? |
Сообщ.
#2
,
|
|
|
Зачем нужны матричные преобразования при повороте на 180 градусов? Это же просто показ пикселей задом-наперёд.
|
Сообщ.
#3
,
|
|
|
Цитата lSergey @ XnView при "преобразовании JPEG без потерь\Поворот на 180 градусов" весьма существенно внутренние байты меняет, а не только пару байт из заголовка. Или все таки поворот возможен только если проводить матричные преобразования? |
Сообщ.
#4
,
|
|
|
Два байта называются Exif orientation tag. Конкретного смещения у них нет, jpeg состоит из чанков, которые теоретически могут быть перемешаны в любом порядке. Нужно перебирать все чанки, пока не доберёшься до чанка Exif (E1FFh), а потом ещё в нём искать тэг (0112h). Или дописывать к файлу, если чанка/тэга нет. В общем, лучше для начала посмотреть готовые библиотеки для работы с Exif, чтобы не разбираться со всеми тонкостями.
Проблема ещё в том, что не все программы поддерживают тэг, особенно это касается встроенных средств Windows (вьюер, тумбнэйлы) - говорят, только в 8-ке прикрутили наконец. А jpeg lossless transform это другое, там переставляются DCT-коэффициенты без перепаковки, вернее, с частичной перепаковкой. Это сложнее и медленнее, зато надёжнее, картинка везде показывается как повёрнутая. |