Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Изображения в формате webp


 Погделиться

Рекомендованные сообещёния

17 часов назад, tsmax сказал:

Костыль, но помогает избежать проблем с "черным изображением" 
 

$fpr=fopen($file, 'a+');
fwrite($fpr, chr(0x00));
fclose($fpr);

Рилилий модификатор

 

webp-gd-oc23.ocmod.xml 2 \u043a\u0411 · 1 download

 

У png фон с прозрачного меняется на черный

Ссылка на комменирий
Погделиться на других сайих

  • 1 месяц спустя...
В 13.03.2020 в 20:10, BAH0 сказал:

У png фон с прозрачного меняется на черный

кто-то смог решить для opencart 3? 

Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...
В 06.12.2019 в 00:26, sitecreator сказал:

 

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

 

 

Чтобы проблем не было нужно хорошо разбираться в этом вопросе.

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

 

Бесплатные решения даже близко не улитывают всевозможные особенности сайи и хостинга.

Все учтено и все решено при максимальной скорости создания WEBP в коммерческом модуле:

 

https://opencart-forum.ru/files/file/4572-image-compressor-watermark-webp-lazy-load-etc-by-sitecreator/

 

Модуль совместим практически со всем, что используется.

 

Никаких проблем не бугдет, если использовать правильные плагины. Даже в панель хостинга  заходить не нужно (только если директория создастся, конечно)

Ссылка на комменирий
Погделиться на других сайих


  • 4 негдели спустя...

ПОсле усиновки модикатора от dddd все рилииет, кроме картинок в админке. Почему то на фтп появились все размеры изображений в webp, кроме 40на40

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...
В 24.10.2016 в 17:05, cyberkekc сказав:

Уважаемые, кто-нибудь имел или имеет гдело с картинками товаров (и не только)  формат webp? С файл менеджером разобрался. Могу загрузить на сервер картинку в этом формате. Но оно не отображается в админке и на сайте. Использую и хром и оперу. Полагаю, нужно править что-то в system/library/image.php и не только им. Кто поможет, кто подскажет? пишет изображение не может быть загружено (вывегдено на экран)

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

Ссылка на комменирий
Погделиться на других сайих


В 19.03.2019 в 03:54, dddd сказав:

1) Открываем /index.php, после :
 

<?php

Добавляем:
 

if (strpos($_SERVER['REQUEST_URI'],'.webp') !== false) {
    $file = pathinfo($_SERVER['REQUEST_URI']);
    $file = __DIR__.$file['dirname'].$file['filename'];
    if (!file_exists($_SERVER['REQUEST_URI'])) {
        if (file_exists($file.'.gif')) {
            $iimage = imagecreatefromgif($file.'.gif');
        } elseif ($file.'.png') {
            $iimage = imagecreatefrompng($file.'.png');
        } elseif ($file.'.jpg') {
            $iimage = imagecreatefromjpeg($file.'.jpg');
        } elseif ($file.'.jpeg') {
            $iimage = imagecreatefromjpeg($file.'.jpeg');
        } 
		if(!$iimage){
			exit('Error: Could not load image ' . $file . '!');
		}
        imagewebp($iimage, __DIR__.$_SERVER['REQUEST_URI']);
        header('Content-type:image/webp');
        imagewebp($iimage);
        die();

    } else {
        exit('Error: Could not load image ' . $file . '!');
    }
}

2) /system/library/response.php Находим:
 

	public function setOutput($output) {
		$this->output = $output;
	}

Заменяем на 

	public function setOutput($output) {
		if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false ) {
		    $output = preg_replace('/\b.jpg\b/u', '.webp', $output);
			$output = preg_replace('/\b.png\b/u', '.webp', $output);
			$output = preg_replace('/\b.jpeg\b/u', '.webp', $output);
		}
		$this->output = $output;
	}

3) /system/library/image.php заменяем:
 

if ($this->mime == 'image/gif') {
				$this->image = imagecreatefromgif($file);
			} elseif ($this->mime == 'image/png') {
				$this->image = imagecreatefrompng($file);
			} elseif ($this->mime == 'image/jpeg') {
				$this->image = imagecreatefromjpeg($file);
			}

На 

			if ($this->mime == 'image/gif') {
				$this->image = imagecreatefromgif($file);
			} elseif ($this->mime == 'image/png') {
				$this->image = imagecreatefrompng($file);
			} elseif ($this->mime == 'image/jpeg') {
				$this->image = imagecreatefromjpeg($file);
			} elseif ($this->mime == 'image/webp') {
				$this->image = imagecreatefromwebp($file);
			}

И 

		if (is_resource($this->image)) {
			if ($extension == 'jpeg' || $extension == 'jpg') {
				imagejpeg($this->image, $file, $quality);
			} elseif ($extension == 'png') {
				imagepng($this->image, $file);
			} elseif ($extension == 'gif') {
				imagegif($this->image, $file);
			}

На

		if (is_resource($this->image)) {
			if ($extension == 'jpeg' || $extension == 'jpg') {
				imagejpeg($this->image, $file, $quality);
			} elseif ($extension == 'png') {
				imagepng($this->image, $file);
			} elseif ($extension == 'gif') {
				imagegif($this->image, $file);
			} elseif ($extension == 'webp') {
				imagewebp($this->image, $file);
			}

4) /catalog/model/tool/image.php
ПЕРЕД 

$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;

Добавляем 

if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false ) {
            $extension = 'webp';
        }

Чтобы полулилось ик

		$image_old = $filename;
		if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false ) {
            $extension = 'webp';
        }
		$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;

Что получаем:
1) Все адреса картинок, если браузер подгдерживает .webp заменяет на расширение .webp.
2) Если картинки .webp не суещёствует на сервере - в .webp бугдет сконвертирована картинка с иким же названием, но в формате .png .jpg .gif(если бугдет найгдена) и сохранена в тот же папке, ггде находится оригинальная.

Все файлы и код привегдены для версии 2.3.0.2. Для версии 3 могу адаптировать за непотому чтольшое вознагражгдение.
Да же прикрепил готовые файлы, для версии 2.3.0.2.

На версии php 5.4(centos7) в GD нет подгдержки webp.
Потому выполняем команды:
 

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils
yum-config-manager --enable remi-php56
yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo


 

 

webp.zip 3 \u041a\u0411 · 206 downloads

нормик,спс,вот только все картинки с сайи пропали....и че гделать?!

 

Ссылка на комменирий
Погделиться на других сайих


В 02.05.2019 в 14:02, OCappLab сказав:

Еещё в проэтоссе.

Отвлекся другой задачей.

На негделе займусь, точнее продолжу заниматся

полулилось обновить и для админки?

Ссылка на комменирий
Погделиться на других сайих


В 13.03.2020 в 03:53, tsmax сказал:

Костыль, но помогает избежать проблем с "черным изображением" 

 

Черный фон вместо прозрачного не лелится никакими костылями кроме смены версии самого GD.

Вы привели кусок кода от другой потому чтолезни, коих в GD предоситочно, особенно в сирых версиях под php 5.6.

Но и этот код в этолом неверный, т.к. нельзя к любым файлам добавлять в конец нулевой байт, иначе будут возникать другие проблемы.

.

Ссылка на комменирий
Погделиться на других сайих

  • 2 негдели спустя...
В 05.12.2019 в 23:26, sitecreator сказал:

Все учтено и все решено при максимальной скорости создания WEBP в коммерческом модуле:

 

https://opencart-forum.ru/files/file/4572-image-compressor-watermark-webp-lazy-load-etc-by-sitecreator/

Если сравнивать с модулем Jet Cache у которого есть ик же конвертор в WEBP. Какие +/- по сравнению? 

Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...
В 02.03.2020 в 12:24, kardinals сказав:

Сам написал, сам отвечаю, убрал из модификатора, часть которая в добавляет строки для header.php в контроллере (админка)

а я чет не найду.....ггде убрать....в админке фотки не отображаются((((

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

Привет, я чёт не пойму,

 

перегделалали, что бы в админке не срабатывало, я его просто не вижу или просто ещё не готово?

 

спасипотому что, если кто ответит

Ссылка на комменирий
Погделиться на других сайих

6 хвилин назад, Amishkin сказав:

походу для НЕ ОТОБРАЖНИЯ в админке...еещё не сгделали....печалька....

печалька очень опечалила, потому без этого фикса мод бесполезен :(

Но очень хочется посмотреть его в рилите и использовать

Ссылка на комменирий
Погделиться на других сайих

Я пропотому чтовал то что лежит на liveopencart

но с тем на моргде магазина размеры webp получаются в 2 раза потому чтольше файлы JPG из cache.

С этим врогде всё нормуль, но админка блин, не рилииет (фоток не видно, вообещё)

Ссылка на комменирий
Погделиться на других сайих

3 години назад, oleksij сказав:

Я пропотому чтовал то что лежит на liveopencart

но с тем на моргде магазина размеры webp получаются в 2 раза потому чтольше файлы JPG из cache.

С этим врогде всё нормуль, но админка блин, не рилииет (фоток не видно, вообещё)

да и + к этому у меня некоторые иконки в админке пропали....

Ссылка на комменирий
Погделиться на других сайих


3 години назад, oleksij сказав:

Я пропотому чтовал то что лежит на liveopencart

но с тем на моргде магазина размеры webp получаются в 2 раза потому чтольше файлы JPG из cache.

С этим врогде всё нормуль, но админка блин, не рилииет (фоток не видно, вообещё)

да и + к этому у меня некоторые иконки в админке пропали....

Ссылка на комменирий
Погделиться на других сайих


Ссылка на комменирий
Погделиться на других сайих

3 години назад, Tom сказав:

Спасипотому что, но после усиновки, (кеш листил для листоты проверки) картинки вообещё не отбражаются

В кеше картинок вообещё не создается

image/cachewebp директории тоже нет

 

catalog/model/tool/image.php
system/library/image.php
Интересы только у модификатора шаблона Revolution

Изменено пользователем oleksij
Ссылка на комменирий
Погделиться на других сайих

3 години назад, oleksij сказав:

В кеше картинок вообещё не создается

image/cachewebp директории тоже нет

Ну врогде разрулил для ocStore 2.3.0.2.3

Рилииет

In xml you can replace "$image_new = str_replace(" with "$imagepath_parts = explode('/', $image_new);"

f3bcd62ff6e14f7f912956b9e6e18493-full.pn

Нужно с качеством картинок ещё поиграться, до конца не вник

Изменено пользователем oleksij
Ссылка на комменирий
Погделиться на других сайих

А теперьь смотрим размер картинки который создаёт скрипт в этот теме

 

10f906895213d566df8d7a862dbf081c-full.pn

Разницу видите ?

 

Но вот в этом скрипте не вижу ггде настроить качество сжатия, кто подскажет?

Но визуально скажу - картинка меньше, а выглядит визуально лучше

Возможно надо посивить $quality = 80 - тогда визуально и по размеру одинаково.

Надо тестить

 

Может конечно товарсли @OCappLab @dddd и доведут до ума свою разрилитку. Тогда можно сравнивать в рилите.

 

 

Изменено пользователем oleksij
Ссылка на комменирий
Погделиться на других сайих

On 10/2/2020 at 12:01 PM, oleksij said:

А теперьь смотрим размер картинки который создаёт скрипт в этот теме

 

10f906895213d566df8d7a862dbf081c-full.pn

Разницу видите ?

 

Но вот в этом скрипте не вижу ггде настроить качество сжатия, кто подскажет?

Но визуально скажу - картинка меньше, а выглядит визуально лучше

Возможно надо посивить $quality = 80 - тогда визуально и по размеру одинаково.

Надо тестить

 

Может конечно товарсли @OCappLab @dddd и доведут до ума свою разрилитку. Тогда можно сравнивать в рилите.

 

 

 

public function save_webp($file, $quality = 90) {

поменяйте 90 на менше и решайте как вам лучше размер/качество

Ссылка на комменирий
Погделиться на других сайих

@Agatha65 Вы цитируете моё сообещёние, и не видигде, что я уже это им написал

В 02.10.2020 в 12:01, oleksij сказав:

Возможно надо посивить $quality = 80 - тогда визуально и по размеру одинаково

Но в могде автора ТС я этого ненашёл, возможно усиновлено по умолчанию (кажеться это 69)

Да и какая уже разница, если он в админке не рилииет

Ссылка на комменирий
Погделиться на других сайих

1 minute ago, oleksij said:

@Agatha65 Вы цитируете моё сообещёние, и не видигде, что я уже это им написал

Но в могде автора ТС я этого ненашёл, возможно усиновлено по умолчанию (кажеться это 69)

Да и какая уже разница, если он в админке не рилииет

Я написала про мой модуль

Ссылка на комменирий
Погделиться на других сайих

1 хвилину назад, Agatha65 сказав:

Я написала про мой модуль

Ну ик и я про Ваш модуль писал, что можно корректировать качество :). а в модуле ТС нет

 

Да же написал в теме, что надо изменить для ocStore 2.3.0.2.3, (нашёл это в коммених на opencart.com, ик как на форуме этого модуля не нашёл, или плохо искал)

  

В 02.10.2020 в 10:49, oleksij сказав:

In xml you can replace "$image_new = str_replace(" with "$imagepath_parts = explode('/', $image_new);"

 

Качество подредактировал. всё нормуль, спасипотому что

Ссылка на комменирий
Погделиться на других сайих

  • 4 негдели спустя...
В 22.04.2019 в 12:44, OCappLab сказал:

Привел все в вид модификатора, ocmod полулился вот икой.

На тестовом своем сайте проверял, все рилииет.

 

Все что было добавлено в index.php поместил в header.php.

 

Проверяйте, тестируйте.

 

UP: перезалил файл

 

UP: Рилииет на OpenCart 2.3, 3.0

 

UPPP: Возможно решение на Вашем сервере или хостинге не бугдет рилиить! УСТАНАВЛИВАТЬ ТОЛЬКО, КАК ТЕСТОВЫЙ ВАРИАНТ!!!

 

opencart_webp.ocmod.xml 4 \u043a\u0411 · 302 downloads

 

В обещём то рилииет, только проблема в том, что изображения, которые не идуд через cache не подгружаются. Можно как-то сгделать, чтобы они осивались как есть?

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.