Переворачиваются изображения в msGallery

При добавлении к товару изображений через msGallery, они произвольным образом переворачиваются на 90, а порой и на 180 градусов. Попробовал перевернуть оригинальный файл — в таком виде и загрузился. Через несколько попыток загрузки/удаления/чистки кэша файл загрузился нормально.
С чем может быть связано такое поведение?
Der Kater Auf Dach
21 декабря 2014, 18:06
modx.pro
2
5 661
0

Комментарии: 15

Василий Наумкин
21 декабря 2014, 23:31
+1
С тем, что изображение снято с поворотом, а компьютер его показывает прилично, благодаря чудесам современной техники. Ну, всякие там EXIF и прочие метки файла.

Однако, эти чудеса пропадают при загрузке на сайт и файл отображается как есть.
    Der Kater Auf Dach
    21 декабря 2014, 23:45
    0
    Спасибо!
    Собственно, это было первой мыслью. Но все показывают в нормальном виде, от Paint до Photoshop. Может, известна программа, которая показывает «как есть»?
      Der Kater Auf Dach
      22 декабря 2014, 00:29
      0
      Нашел решение, хоть и немного костыльное. Пример — при заливке изображение поворачивается на 90 гр. влево.
      Делаю так: открываю файл в Paint'е, поворачиваю на 90 гр. вправо, сохраняю, поворачиваю на 90 гр. влево, сохраняю. Заливаю на сайт, сохраняю страницу и обновляю кэш. Все отображается как надо.

      Вдруг кому пригодится…
        Николай Загумённов
        07 июня 2015, 17:22
        0
        Благодарю, пригодилось) Только не в Пайнте, а в фотошопе пересохранял картинки.
        Василий Наумкин
        22 декабря 2014, 04:00
        0
        Я пользуюсь GIMP, там вроде как надо. Во всяком случае, ни разу не сталкивался с такой неприятностью.
      Алексей
      07 июня 2015, 19:42
      0
      совершенно та же проблема, и совершенно то же костыльное решение) заметил только если на iphone фотографировать так странно себя система ведет
        Владимир
        07 июня 2015, 23:47
        +1
        toki-woki.net/p/Shrink-O-Matic/ вот, в том числе и переворачивает, а в остальном тоже отличная програмулька для пакетной обработки изображений. Маст хев инструмент, к тому же и универсальный, под винду и яблоки.
        Максим
        08 июня 2015, 03:55
        0
        Не такая и проблема поворачивать по 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);			
        	}
        }
          Василий Наумкин
          08 июня 2015, 06:44
          0
          Так а что мешает добавить ar = x в настройки источника файлов?
            Максим
            08 июня 2015, 07:06
            0
            Тогда будет создаваться папка с названием x и в ней уже повернутая картинка — из метода saveThumbnail(). Для других превью придется дописывать «ar»:«x» и править заодно window.gallery.js — чтобы там картинка тоже переворачивалась. Тоже не очень хорошо.
              Василий Наумкин
              08 июня 2015, 07:27
              0
              Не вижу логики.

              Сейчас ты меняешь оригинальную картинку, когда можно задать дополнительный параметр превьюшкам и все они (по идее) будут повёрнуты в нужную сторону, согласно EXIF.

              ms2Gallery не меняет оригинальные картинки именно за тем, чтобы всегда можно было сгенерировать превьюшки по новым правилам.

              У тебя сейчас пережимка при загрузке, а потом еще пережимка при создании превью.
                Максим
                08 июня 2015, 08:40
                +1
                А зачем мне оригинал, повернутый не так как надо?

                У тебя сейчас пережимка при загрузке, а потом еще пережимка при создании превью.
                У меня получается меньше операций — 1 поворот оригинала, а превьюшки ворочать уже не нужно. Кроме этого, если не трогать оригинал, то в базу попадут неправильные размеры картинки, которая повернута на 90 градусов.

                Если речь о потере качества, так она уже случилась, когда ресайзил браузер перед загрузкой — и то, много ли людей увидят эти потери?

                Опять же ворочать можно через jpegtran, тогда потерь при повороте не будет вообще, заодно можно и дополнительное сжатие сделать. Или вообще поворачивать на клиенте, а тут уже мешает plupload.

                В общем, проблема решается минимум двумя способами — кому актуально, тот пусть сам и решает как лучше.
                  Василий Наумкин
                  08 июня 2015, 08:58
                  0
                  У меня получается меньше операций — 1 поворот оригинала, а превьюшки ворочать уже не нужно.
                  Еще раз: если ты укажешь этот параметр, то картинка повернётся при генерации превью.

                  Превью всё равно будет генерироваться, согласно настроек источника файлов, это просто один дополнительный параметр в настройках, помимо h, w, zc, bg — которые уже есть.

                  У тебя 2 обработки, а так будет 1 и без изменения исходников.

                  В общем, проблема решается минимум двумя способами — кому актуально, тот пусть сам и решает как лучше.
                  Согласен. Но менять исходники у регулярно обновляемого дополнения — не лучшая идея.
                    Евгений
                    01 августа 2019, 20:03
                    0
                    Согласен. Но менять исходники у регулярно обновляемого дополнения — не лучшая идея.
                    А реально ли расширить gallery/upload.class.php по подобию как это делается с msorderhandler.class.php? нашел вашу заметку «Как не хакать сторонние классы», но похоже в случае с gallery/upload.class.php эта заметка не поможет. Или я ошибаюсь?
          Ivan
          05 октября 2023, 16:41
          0
          Случайно наткнулся на данный пост.
          Но все же напишу. Вдруг кому-то поможет.

          Открываете tinypng.com заливаете туда картинку и скачиваете ее оттуда. Все у вас нет лишней мета-информации и изображение всегда будет отображаться как надо
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            15