Jump to content

Почему увеличивается размер изображений при загрузке


Recommended Posts

У меня Prestashop 1.5.3.1.

При загрузке изображений товаров их размер (вес в килобайтах) на сервере увеличивается чуть ли не в два раза. Чем это вызвано?

 

В настройках изображений ставлю качество сжатия для JPG - 90. В настройках thickbox стоит размер 700x700. Гружу уже заранее подготовленные и СЖАТЫЕ оптимизатором картинки тоже размером 700x700.

 

Для чистоты эксперимента после загрузки картинок чищу кэш браузера, кэш магазина и регенерирую миниатюры. Потом обновляю страницу товара. И вот тебе на! Размеры картинок (вес в килобайтах) на сервере стали почти в два раза больше. Например гружу 700x700 38 кб, а при просмотре товара и сохранении на диск размер файла 700x700, но вес уже 62 кб!

 

На картинки накладывается водяной знак, но он весит всего 3 кб (формат gif).

 

В чем причина?

Link to comment
Share on other sites

Дополнение - думал может Prestashop при наложении водяного знака как-то там неоптимально все это обрабатывает. Проверил ситуацию без водяного знака, отключив модуль Водяной знак. Размер файла все равно увеличился почти в два раза. С водяным знаком - 61кб, без водяного - 59 кб, а загружал 38 кб.

 

Не могу понять, в чем причина и как исправить.

Link to comment
Share on other sites

Любое изображение имеет кроме того, что мы видим, ещё и скрытую техническую информацию о фотографии (когда снято, чем снято и прочее и прочее). Оптимизация, как раз, и предполагает удаление всей ненужной информации. ПрестаШоп увеличивает вес изображения? Думаю, он добавляет свою. Где-то, может быть (не знаю точно, потому что не сталкивался), есть настройки, отключающие эту опцию, добавление информации?..

 

Другая мысль... Говорите, 38 Кб у изображения 700 на 700? Маловато для такого. Может быть, ПрестаШоп накручивает вес фотографии, оптимизируя её до заданного качества 90?

Link to comment
Share on other sites

Техническая информация занимает минимум - не в 2 раза же увеличивать фотографию? Не поленитесь - проверьте на своем сайте, и Вы тоже такое увидите. Разве никого не смущает, что из-за этой особенности Prestashop вес странички увеличится в несколько раз и грузиться она будет очень медленно.

 

Я, правда, проверяю пока на локальном сервере, но не умаю, что это связано с его особенностями.

Может проверите у себя и отпишетесь сюда - у вас также.

 

Какую это свою информацию Prestashop должен вставлять в качестве технической в фотографии, чтобы вес так рос? Копию текста всей странички, сведения о сервере и мои паспортные данные? Конечно же, нет! Он где-то неоптимально работает с изображениями.

 

Я фотографии сжимаю замечательной программой Ulead Smart Saver Pro - она старенькая, но работает вроде лучше многих других программ аналогичного назначения.

 

Если конкретно по данному файлу, вот фотошоповскую работу сохраненную в JPG со 100%-ным качеством он сжал со 158 кб до 38,5 кб с настройками по умолчанию при сохранении размера 700x700.

 

А эта зараза Prestashop увеличивает их размеры (вес) в два раза при выставленном качестве JPG = 90!

 

Я вот взял наугад несколько чужих сайтов (buysleep.ru, cdolls.ru, centerlight.ru, florestin.ru, geart.ru) на Prestashop (версий не знаю): скопировал на диск картинки размера thickbox и сжал их в пакетном режиме прогой с сохранением размера и пропорций в пикселях. И каков результат - ужало все почти в 2 раза с картинку с постельным бельем вобще с 278 до 47 кб - в 5 раз! Вот до сжатия:

 

 

Вот после сжатия:

 

C:\after_compressing.jpg

 

А вот две картинки. До сжатия (45 кб):

 

 

После сжатия (24 кб):

 

 

Разве разница в качестве на глаз видна?

 

Это при практически неотличимом качестве картинок! Я не думаю, что дизайнеры этих и других сайтов так бестолковы, что не оптимизировали картинки перед загрузкой. Уверен, что их исходный размер до загрузки на сайт был именно примерно в 2 раза меньше.

 

Совершенно очевидно, что, Prestashop сует какой-то мусор в эти картинки или же не лучшим образом с ними работает. Задайте, пожалуйста, вопрос разработчикам.

 

 

 

 

 

Что делать? Проверьте у себя и отпишите разработчикам. Это же никуда не годится!

 

Соори, не знаю, почему картинки не загрузились.

Edited by Lion1 (see edit history)
Link to comment
Share on other sites

Ну, Вы так сразу столько на ПрестаШоп наговорили!.. Почему Вы так уверены, что и у меня, и у других — также! Специально проверил. Размеры загружаемых и загруженных изображений у меня совпадают. Никакого увеличения. Правда, одно меня напугало... Загружал — было 300, загрузил — стало 1400! А потом смотрю — то ж пинг! А для png у меня настройка 0. Это для самого хорошего качества микрографики, которая у меня вся с прозрачными фонами и в цветах, не поддерживаемых гифом.

 

Да, Вы правы, пожалуй. Никакой своей информации ПрестаШоп в изображения не пихает. Но, значит, у Вас что-то с настройками... Не верите мне, попросите ещё ког-нибудь сравнить фотки до и после загрузки. Что они скажут?

Edited by Dimitri Yelquin (see edit history)
Link to comment
Share on other sites

Может это имеет какое-то значение... Такая деталь, у себя в Фотошопе я сохраняю изображения с тем же качеством, которое задано в ПрестаШопе. Может быть, если изображение оптимизировано, включая качество, которое из рациональных соображений облегчено не только за счёт выкидавания из него ненужных метаданных, но и за счёт снижения качества сохранения — ну, например, зачем сохранять с качеством 90, когда и с качеством 75 в этом формате изображение получается визуально почти неотличимым? — то при сохранении его с более высоким качеством вес, естественно, увеличивается.

Edited by Dimitri Yelquin (see edit history)
Link to comment
Share on other sites

Может в админке навкладке изображения стоит галка на против png качества фоток и они при загрузке конвертятся в png но расширение файла остается прежним jpg...

Link to comment
Share on other sites

И правда, какая там настройка стоит? Всё конвертировать в jpg? Всё конвертировать в png? Или средняя, где говорится, что всё в jpg, но если оригинал в png, то его таким и оставлять. Я выбрал эту настройку ради миниатюрок. А большие картинки я сам сначала сохраняю в jpg.

Edited by Dimitri Yelquin (see edit history)
Link to comment
Share on other sites

Сначала отвечу на предположения о причинах.

 

В настройках стоит именно первая опция: JPG - без всяких вариантов PNG. Ошибки в формате нет, так как у меня есть программа, которая показывает файлы, сохраненные не со "своими" расширениями. Т.е. гружу точно JPG, а не PNG с переименованные расширением.

 

Загружал уже оптимизированные картинки. Делал так: В Фотошопе готовил квадратные картинки 700x700, сохранял их со 100%-ным качеством в JPG, а потом оптимизировал Ulead Smart Saver Pro с качеством 75 Progressive.

 

 

А теперь поэкспериментируем пару минут.

 

 

Настройки изображений в Prestashop:

 

Качество изображений: Использовать JPEG

 

Качество JPEG: 100

 

Качество PNG: 7

 

Использовать совместимую систему: Да

 

Сгенерированные изображения будут вписываться: автоматически

 

Максимальные размеры для загрузки: 8 мб, 1280x1024

 

 

Сразу говорю: перед каждым изменением чищу кэш браузера, кэш Prestashop, делаю перегенерацию миниатюр с удалением предыдущих изображений, опять чищу кэши и обновляю страницу в браузере.

 

 

Возьмем для пробы одну картинку и поэкспериментируем с ней в Prestashop.

 

Итак, после Фотошопа размер: 396 кб 700x700 px - JPG картинка, сохраненная со 100%-ным качеством.

 

Назовем ее after_photoshop.jpg

 

И есть вторая картинка, полученная путем сжатия after_photoshop.jpg в программе Ulead SmartSaver Pro с качеством 75 Progressive. Разрешение не меняем (700x700). Размер картинки ужался до 72,1 кб, т.е. в 5 с лишним раз.

 

Назовем ее compressed.jpg

 

Добавляю compressed.jpg к картинкам товара. Жму "Перекомпилировать миниатюры". Нахожу картинку товара для thickbox. Вот что и требовалось доказать: размер картинки из 72 кб стал 249 кб!

 

Я полагал, что если я ставлю качество JPG в настройках Prestashop 100, то Prestashop НИЧЕГО НЕ ДОЛЖНА делать с картинко, т.е. ни сжимать, ни ухудшать - как есть, так и публикует.

 

Проверим теперь как ведет себя Prestashop при загрузке after_photoshop.jpg - картинки после Фотошопа со 100%-ным качеством. Качство JPG в Prestashop оставляем 100. Проверяем.

 

На выходе получаем 349 кб вместо 396 (уменьшились примерно на 30 кб размеры исходной картинкии thickbox? размеры который 700x700 были оставлены как и у входящей картинки). По логике Prestashop не должна вмешиваться в исходную картинку, а она и тут наколбасила что-то и из накодлбасенной настругала уже thickbox. ЗАЧЕМ Prestashop меняет JPG картинки, качество для которых 100 и размер которых равен входящим? Я не пойму логики вобще!

 

Хорошо, дадим ей еще возможность. Ставим в Prestashop качество 75 и будем грузить after_photoshop.jpg - картинку после Фотошопа со 100%-ным качеством. Пусть ее сжимает Prestashop до качества 75. Проверяем.

 

Вот теперь совсем другое дело. Картинка ужалась до 76 кб вместо исходной 396. Т.е. примерно то, что дал и оптимизатор на выходе.

 

Проверим для чистоты эксперимента с другими картинками. Теперь гружу неоптимизированные фото.

 

КАРТИНКА 1:

Исходная неоптимизированная: 186 кб

Prestashop thikbox с водяным знаком: 44 кб

Оптимизированная сторонней программой: 39 кб

 

КАРТИНКА 2:

Исходная неоптимизированная: 197 кб

Prestashop thikbox с водяным знаком: 48 кб

Оптимизированная сторонней программой: 40 кб

 

 

КАРТИНКА 3:

Исходная неоптимизированная: 255 кб

Prestashop thikbox с водяным знаком: 49 кб

Оптимизированная сторонней программой: 45 кб

 

Видимо со мной получилос то же, что и с некоторыми вышеозначенными дизайнерами сайтов - Горе от ума, как говорится. Грузили оптимизированные - получили на выходе неоптимизированные. А надо было грузить несжатые. В этом отношении все равно Prestashop глючит. Почему он вместо дальнейшего сжатия оптимизиролванных картинок по весу (качество тоже ухудшится), как бы их разжимает и оставляет с таким увеличенным размером и худшего качества?

 

 

В ОБЩЕМ РЕЗЮМЕ:

1. Грузите в Prestashop только неоптимизированные JPG файлы и выставляйте качество, которое приемлемо для Вас. Для меня 75 - самое нормальное. Prestashop сама оптимизирует картинки.

 

2. Не грузите уже оптимизированные картинки, иначе вы получите на выходе картинки в несколько раз большие чем грузили. Почему - не знаю. Если подскажете, то это тоже позволит сэкономить может несколько кб на каждой картинке.

Link to comment
Share on other sites

«Наколбасил», «глючит» и кучу других комплиментов успели накидать ПрестаШопу. Какое-то потребительское отношение к движку. Нашли баг — несите его на багтрекер, участвуйте в улучшении его функционала.

 

А тут ещё получается, что если даже это и были глюки, то у Вас в голове, а не в ПрестаШопе. Сами же это в конце и доказали...

Link to comment
Share on other sites

Используются функции php для работы с картинками, например imagecopyresampled.

Попробуйте уменьшить качество изображения.

Возможно исходные картинке не в truecolor, поэтому они весят меньше.

Link to comment
Share on other sites

  • 4 months later...

Аналогичная проблема. Внесу больше ясности в ситуации. Проблема заключается в цветовых профилях RGB или sRGB.

 

Если цветовая схема исходного изображения RGB, при загрузке в presta оптимизирует изображение под web-интерфейс и урезает цвета(цвет становится менее насыщенным), но размер изображения остается тем же. Если же цветовая схема исходного изображения sRGB, presta увеличивает размер изображения раза в 3, но сохраняет цвета.

 

Примечательно то, что, если загрузить sRGB файл, потом скачать, фотошоп с ошибкой откажется открывать этот файл.

Link to comment
Share on other sites

Моя проблема заключалась в том, что в настройках стояла галочка "использовать PNG для всех изображений". Очевидно, presta странным образом переводил из jpeg в png и увеличивал размер.

Короче, проблему решил: "Использовать JPEG" с качеством 75. Исходная цветовая схема sRGB, качество 100. Prestashop цвет не режет, ухудшение качества(с 100 до 75) заметно только при детальном изучении изображения. Размер, при этом, значительно меньше оригинала....

Edited by c00lpix (see edit history)
Link to comment
Share on other sites

  • 7 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...