Переворачиваются изображения в msGallery
При добавлении к товару изображений через msGallery, они произвольным образом переворачиваются на 90, а порой и на 180 градусов. Попробовал перевернуть оригинальный файл — в таком виде и загрузился. Через несколько попыток загрузки/удаления/чистки кэша файл загрузился нормально.
С чем может быть связано такое поведение?
С чем может быть связано такое поведение?
Комментарии: 15
С тем, что изображение снято с поворотом, а компьютер его показывает прилично, благодаря чудесам современной техники. Ну, всякие там EXIF и прочие метки файла.
Однако, эти чудеса пропадают при загрузке на сайт и файл отображается как есть.
Однако, эти чудеса пропадают при загрузке на сайт и файл отображается как есть.
Спасибо!
Собственно, это было первой мыслью. Но все показывают в нормальном виде, от Paint до Photoshop. Может, известна программа, которая показывает «как есть»?
Собственно, это было первой мыслью. Но все показывают в нормальном виде, от Paint до Photoshop. Может, известна программа, которая показывает «как есть»?
Нашел решение, хоть и немного костыльное. Пример — при заливке изображение поворачивается на 90 гр. влево.
Делаю так: открываю файл в Paint'е, поворачиваю на 90 гр. вправо, сохраняю, поворачиваю на 90 гр. влево, сохраняю. Заливаю на сайт, сохраняю страницу и обновляю кэш. Все отображается как надо.
Вдруг кому пригодится…
Делаю так: открываю файл в Paint'е, поворачиваю на 90 гр. вправо, сохраняю, поворачиваю на 90 гр. влево, сохраняю. Заливаю на сайт, сохраняю страницу и обновляю кэш. Все отображается как надо.
Вдруг кому пригодится…
Благодарю, пригодилось) Только не в Пайнте, а в фотошопе пересохранял картинки.
Я пользуюсь GIMP, там вроде как надо. Во всяком случае, ни разу не сталкивался с такой неприятностью.
совершенно та же проблема, и совершенно то же костыльное решение) заметил только если на iphone фотографировать так странно себя система ведет
toki-woki.net/p/Shrink-O-Matic/ вот, в том числе и переворачивает, а в остальном тоже отличная програмулька для пакетной обработки изображений. Маст хев инструмент, к тому же и универсальный, под винду и яблоки.
Не такая и проблема поворачивать по EXIF автоматически при загрузке. Я делал некрасивый хак в файле core/components/ms2gallery/processors/mgr/gallery/upload.class.php перед строкой $product_file->save():
if ($product_file->get('type') == 'image') {
require_once MODX_CORE_PATH . 'model/phpthumb/modphpthumb.class.php';
$phpThumb = new modPhpThumb($this->modx);
$phpThumb->initialize();
$image = MODX_BASE_PATH.$url;
$phpThumb->setSourceFilename($image);
$phpThumb->setParameter("ar", "x");
if ($phpThumb->GenerateThumbnail()) {
$phpThumb->renderToFile($image);
}
}
Так а что мешает добавить ar = x в настройки источника файлов?
Тогда будет создаваться папка с названием x и в ней уже повернутая картинка — из метода saveThumbnail(). Для других превью придется дописывать «ar»:«x» и править заодно window.gallery.js — чтобы там картинка тоже переворачивалась. Тоже не очень хорошо.
Не вижу логики.
Сейчас ты меняешь оригинальную картинку, когда можно задать дополнительный параметр превьюшкам и все они (по идее) будут повёрнуты в нужную сторону, согласно EXIF.
ms2Gallery не меняет оригинальные картинки именно за тем, чтобы всегда можно было сгенерировать превьюшки по новым правилам.
У тебя сейчас пережимка при загрузке, а потом еще пережимка при создании превью.
Сейчас ты меняешь оригинальную картинку, когда можно задать дополнительный параметр превьюшкам и все они (по идее) будут повёрнуты в нужную сторону, согласно EXIF.
ms2Gallery не меняет оригинальные картинки именно за тем, чтобы всегда можно было сгенерировать превьюшки по новым правилам.
У тебя сейчас пережимка при загрузке, а потом еще пережимка при создании превью.
А зачем мне оригинал, повернутый не так как надо?
Если речь о потере качества, так она уже случилась, когда ресайзил браузер перед загрузкой — и то, много ли людей увидят эти потери?
Опять же ворочать можно через jpegtran, тогда потерь при повороте не будет вообще, заодно можно и дополнительное сжатие сделать. Или вообще поворачивать на клиенте, а тут уже мешает plupload.
В общем, проблема решается минимум двумя способами — кому актуально, тот пусть сам и решает как лучше.
У тебя сейчас пережимка при загрузке, а потом еще пережимка при создании превью.У меня получается меньше операций — 1 поворот оригинала, а превьюшки ворочать уже не нужно. Кроме этого, если не трогать оригинал, то в базу попадут неправильные размеры картинки, которая повернута на 90 градусов.
Если речь о потере качества, так она уже случилась, когда ресайзил браузер перед загрузкой — и то, много ли людей увидят эти потери?
Опять же ворочать можно через jpegtran, тогда потерь при повороте не будет вообще, заодно можно и дополнительное сжатие сделать. Или вообще поворачивать на клиенте, а тут уже мешает plupload.
В общем, проблема решается минимум двумя способами — кому актуально, тот пусть сам и решает как лучше.
У меня получается меньше операций — 1 поворот оригинала, а превьюшки ворочать уже не нужно.Еще раз: если ты укажешь этот параметр, то картинка повернётся при генерации превью.
Превью всё равно будет генерироваться, согласно настроек источника файлов, это просто один дополнительный параметр в настройках, помимо h, w, zc, bg — которые уже есть.
У тебя 2 обработки, а так будет 1 и без изменения исходников.
В общем, проблема решается минимум двумя способами — кому актуально, тот пусть сам и решает как лучше.Согласен. Но менять исходники у регулярно обновляемого дополнения — не лучшая идея.
Согласен. Но менять исходники у регулярно обновляемого дополнения — не лучшая идея.А реально ли расширить gallery/upload.class.php по подобию как это делается с msorderhandler.class.php? нашел вашу заметку «Как не хакать сторонние классы», но похоже в случае с gallery/upload.class.php эта заметка не поможет. Или я ошибаюсь?
Случайно наткнулся на данный пост.
Но все же напишу. Вдруг кому-то поможет.
Открываете tinypng.com заливаете туда картинку и скачиваете ее оттуда. Все у вас нет лишней мета-информации и изображение всегда будет отображаться как надо
Но все же напишу. Вдруг кому-то поможет.
Открываете tinypng.com заливаете туда картинку и скачиваете ее оттуда. Все у вас нет лишней мета-информации и изображение всегда будет отображаться как надо
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.