Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 26.11.2017, 18:13
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Сообщение от laimas Посмотреть сообщение
JPEG формат не поддерживает анимацию, разберитесь что у вас сохранилось.
Да, я знаю, но не один раз встречала именно анимацию в формате jpg. Теперь Вы мне пояснили почему. Причем у меня показывает анимацию в трех разных браузерах.
Я так понимаю теперь все вшивки в exif, будут отсечены, а изменением размера можно уничтожить и в теле картинке? Но если размер изображения равен необходимому, можно это сделать двойным ресайзом, например, сначала увеличить на несколько пикселей, а потом вернуть к исходному. Или суть здесь, именно в измененном от начального размере.

Последний раз редактировалось Sonya, 26.11.2017 в 18:27.
Ответить с цитированием
  #32 (permalink)  
Старый 26.11.2017, 18:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
не один раз встречала именно анимацию в формате jpg
Такой анимации нет, нет поддержки. Можно посредством JS устроить анимацию из нескольких jpeg изображений, либо спрайт таких изображений со встроенным SVG, который и занимается анимацией. Понятное дело, что попадись вам такой, GD его не откроет корректно, а если и сможет, то не сохранит.
Ответить с цитированием
  #33 (permalink)  
Старый 26.11.2017, 18:26
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Да, и хостинг поддерживает ImageMagick, код от этого меняется?
Ответить с цитированием
  #34 (permalink)  
Старый 26.11.2017, 18:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
Я так понимаю теперь все вшивки в exif, будут отсечены
Да, сохранится чистый ресурс, хотя при наличии exif их можно прочесть. Проверьте.

Сообщение от Sonya
а изменением размера можно уничтожить и в теле картинке?
Да. При выводе на экран изображений посредством GD, в случае предупреждений/ошибок в браузер будут выведено не изображение, а его бинарные данные. На это и расчет такого встраивания - запуск РНР кода встроенного в тело изображения. Для этого еще надо постараться, но ...

Сообщение от Sonya
Но если размер изображения равен необходимому, можно это сделать двойным ресайзом, например, сначала увеличить на несколько пикселей, а потом вернуть к исходному.
Я не знаю чего вы сохраняете и насколько требования к размерам, но конечно можно изменить, затем опять изменить.
Ответить с цитированием
  #35 (permalink)  
Старый 26.11.2017, 18:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
Да, и хостинг поддерживает ImageMagick, код от этого меняется?
Конечно код будет иной. Причем API для работы с ImageMagick есть как расширение (во многом пока экспериментальное), но не поставляется вместе с РНР. Как у вас на хосте сказать не могу. Если нет поддержки со стороны РНР, то значит из командной строки запуск будет.

С GD просто проще, но она и более прожорлива и уступает во многом ImageMagick, хотя для вашей задачи вполне хватит.
Ответить с цитированием
  #36 (permalink)  
Старый 26.11.2017, 18:41
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Сообщение от laimas Посмотреть сообщение
Я не знаю чего вы сохраняете и насколько требования к размерам, но конечно можно изменить, затем опять изменить.
Размер анимации 100х100, например, пользователь загружает её, я увеличиваю до 101х101, потом возвращаю к размеру 100х100 (будет незначительная потеря качества), таким образом я удалю вредоносный код из тела картинки?
Ответить с цитированием
  #37 (permalink)  
Старый 26.11.2017, 19:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
пользователь загружает её, я увеличиваю до 101х101, потом возвращаю к размеру 100х100
Не получится - GD не работает с GIF анимацией, exif в данном файле нет, встраивать что-то в тело не имеет смысла, у данного типа сложный заголовок и не одна секция описания. Менять размеры не надо - проверили палитру - индексированная, значит просто сохраняем file_put_contents(...);
Ответить с цитированием
  #38 (permalink)  
Старый 26.11.2017, 19:06
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

дадите ссылочку на ваше творение, хочется помотреть как не будет грузить сервер
Ответить с цитированием
  #39 (permalink)  
Старый 26.11.2017, 19:14
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

laimas, спасибо.
Lion777, пока некондиция.
Ответить с цитированием
  #40 (permalink)  
Старый 27.11.2017, 06:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Sonya,
сохранение в GIF, тоже некорректно:

file_put_contents('path/name.jpg', $f); //сохранение GIF/PNG8 -> GIF

Если исходное, это GIF, то все будет нормально, если же PNG8, то нет. Нужно дополнительно здесь проверять тип изображения и сохранять под соответствующим расширением.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление и копирование между страницами Medvedoc jQuery 8 12.08.2015 22:01
копирование текста из ячейки таблицы в textarea racoon Общие вопросы Javascript 5 22.07.2013 22:17
копирование файлов в обход ограничений безопасности danil2011 Internet Explorer 0 27.06.2011 07:43
Копирование блоков страницы(или целиком) Phoenix Общие вопросы Javascript 30 24.03.2008 23:46