Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

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

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


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

Рабочий модификатор

 

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

 

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

Надіслати
Поділитися на інших сайтах

  • 1 month later...
  • 3 weeks later...
В 06.12.2019 в 00:26, sitecreator сказал:

 

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

 

 

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

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

 

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

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

 

https://opencartforum.com/files/file/4572-image-compressor-watermark-webp-lazy-load-etc-by-sitecreator/

 

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

 

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

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...
  • 1 month later...
В 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

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

 

Надіслати
Поділитися на інших сайтах


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

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

 

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

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

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

.

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...
В 05.12.2019 в 23:26, sitecreator сказал:

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

 

https://opencartforum.com/files/file/4572-image-compressor-watermark-webp-lazy-load-etc-by-sitecreator/

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

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
В 02.03.2020 в 12:24, kardinals сказав:

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

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

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

 

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

 

спасибо, если кто ответит

Надіслати
Поділитися на інших сайтах

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 weeks later...
В 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 не подгружаются. Можно как-то сделать, чтобы они оставались как есть?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.