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

Модуль для массового сжатия фото в формате jpg


Ezik

Recommended Posts

Добрый день. Ищу модуль для уменьшения размера фото в формате jpg. Сейчас на сайте фото с размером более 50 КВ.Сайт подтормаживает, хочу ускорить его работу.

Нужно сжать порядка 30000 фото. Ручками это ооочень долго.

 

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


1 час назад, Ezik сказал:

Сейчас на сайте фото с размером более 50 КВ

Нужно посмотреть в Гугл ПейджСпид - возможно тормоза не из-за картинок. Или одновременно подгружается много фото - тогда делать отложенную загрузку.

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

<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>OCMOD Quick Convert Images in WebP</name>
<code>webp-gd</code>
<version>1.0</version>
<author>no_name</author>
<link></link>
	<file path="catalog/model/tool/image.php">
		<operation>
			<search><![CDATA[$image_new = 'cache/']]></search>
			<add position="after"><![CDATA[$image_new_webp = 'cachewebp/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.webp';]]></add>
		</operation>
		<operation>
			<search><![CDATA[$image_new = str_replace(]]></search>
			<add position="before" ><![CDATA[
			$gd = gd_info();
			if ($gd['WebP Support']) {
				if (!is_file(DIR_IMAGE . $image_new_webp) || (filectime(DIR_IMAGE . $image_new) > filectime(DIR_IMAGE . $image_new_webp))) {
										
					$path = '';

					$directories = explode('/', dirname($image_new_webp));

					foreach ($directories as $directory) {
						$path = $path . '/' . $directory;

						if (!is_dir(DIR_IMAGE . $path)) {
							@mkdir(DIR_IMAGE . $path, 0777);
						}
					}
					
					$image_webp = new Image(DIR_IMAGE . $image_old);
					$image_webp->resize($width, $height);
					$image_webp->save_webp(DIR_IMAGE . $image_new_webp);
				}
			}
			]]></add>
		</operation>
	</file>
	<file path="system/library/image.php">
		<operation>
			<search><![CDATA[public function save($file, $quality = 90) {]]></search>
			<add position="before"><![CDATA[
			public function save_webp($file, $quality = 90) {
				if (is_resource($this->image)) {
					imagewebp($this->image, $file, $quality);
					imagedestroy($this->image);
				}
			}
			]]></add>
		</operation>
	</file>
	<file path="system/library/response.php">
		<operation>
			<search><![CDATA[private function compress($data, $level = 0)]]></search>
			<add position="before" ><![CDATA[ 	
			public function webpRebuild($output) {
				$gd = gd_info();
				if ($gd['WebP Support']) {
					$uri = '';

					if (isset($_SERVER['REQUEST_URI'])) {
						$uri = $_SERVER['REQUEST_URI'];
					}
					
					if (stripos($uri, 'admin') === false) {
						if (isset($_SERVER['HTTP_ACCEPT']) && isset($_SERVER['HTTP_USER_AGENT'])) {
							if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false ) {	
								$re = '/(cache)(.*)(\.jpg|\.png|.jpeg)/U';
								$subst = '$1webp$2.webp';
								$this->output = preg_replace($re, $subst, $this->output);
							}
						}
					}
				}
			}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$output = $this]]></search>
			<add position="before" ><![CDATA[ $this->webpRebuild($this->output); ]]></add>
		</operation>
	</file>
</modification>

На 2.3 и на 3-ке работает...

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

Quote

<author>no_name</author>

:mrgreen::mrgreen::mrgreen:

Это мой модуль и он бесплатный

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=38025

 

@Ezik Бесплатная версия https://kraken.io/web-interface сжимает тысячи, но если картинка не больше 1МБ.
Платная версия делает все. https://kraken.io/pricing

  • +1 2
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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