Jump to content

Recommended Posts

Хостинг? Напишите своему хостинг-провайдеру письмо о том, что на сервере webp support есть, но изображения webp не создаются через imagewebp. Пусть проверят.

Предварительно (на всякий случай) очистите папку resized или в какую у вас записываются изображения с изменёнными размерами.

Link to post
Share on other sites

Хостинг? Напишите своему хостинг-провайдеру письмо о том, что на сервере webp support есть, но изображения webp не создаются через imagewebp. Пусть проверят.

Предварительно (на всякий случай) очистите папку resized или в какую у вас записываются изображения с изменёнными размерами.

 

измененные изображения по факту должны записываться в папку products же? 

а со статическими изображениями( фото бренда, фото категории) ? Ручками переделываете?

Link to post
Share on other sites

У меня это папка files/products, какая у вас - не знаю, все в настройках ставят как хотят.

Фото категории у меня также сохраняются в этой папке как webp и как jpg. Брендов у меня нет

Остальное (то, что в шаблоне) - да, руками

Link to post
Share on other sites

У меня это папка files/products, какая у вас - не знаю, все в настройках ставят как хотят.

Фото категории у меня также сохраняются в этой папке как webp и как jpg. Брендов у меня нет

Остальное (то, что в шаблоне) - да, руками

 

так а как фото категории у вас создается как webp если там ресайз не используется? 

Edited by Kami
Link to post
Share on other sites

так а как фото категории у вас создается как webp если там ресайз не используется? 

У меня используется. Видимо, давно сделал по аналогии с товарами.

Link to post
Share on other sites
  • 7 months later...

что исправить? imagedestroy() expects parameter 1 to be resource, string given in /,,,,,,,,,,,,/resize/resize.php on line 29

ресайз webp создается только после клика по jpeg, вывожу через |replace:'.jpg':'.webp', картинок нет пишет the image could not be loaded

Link to post
Share on other sites
  • 2 months later...

У меня - все, установленные на компьютере. С проблемой Сергеевича знаком, насколько помню, у него создавались webp изображения, но htaccess не обрабатывался - проблема была с настройками сервера. Потому он вам и задал вопрос - у вас webp изображения не создаются или браузер их не выводит? Вы не ответили, поэтому где у вас проблема, непонятно.

Подскажите пожалуйста, закинул ваш код в .htaccess и в resize.php. Webp создается, но загоняю в pagespeed insights пишет что используется jpg. Что проверить чтоб загружался webp ?

 

Слаб в этом, подскажите куда и что заливать, пожалуйста.

 

я же правильно понимаю, это код, что б перевести все изображения jpg на сайте в webp ?

Link to post
Share on other sites

 

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

Всё гениальное просто. Очень просто, но потратил на это весь вечер.

В resize.php в самый конец добавляете

 

 

 

 
$webp_filename = preg_replace('/\.[^.]+$/','',$resized_filename).".webp";
if (file_exists($webp_filename))
{
}
else
{
    $imagetoconvert = imagecreatefromjpeg($resized_filename);  
    imagewebp($imagetoconvert, $webp_filename, 80);
    imagedestroy($resized_filename);
}
 

 

 

Далее в htaccess прописываете

 


AddType image/webp .webp
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept 
</IfModule> 


Все очень хорошо работает, остается только один вопрос, файлы .jpeg конвертируются, а вот с .png не получается

Link to post
Share on other sites

Все очень хорошо работает, остается только один вопрос, файлы .jpeg конвертируются, а вот с .png не получается

 

В /resize/resize.php заменить код 

 

$webp_filename = preg_replace('/\.[^.]+$/','',$resized_filename).".webp";
if (file_exists($webp_filename))
{
}
else
{
    $imagetoconvert = imagecreatefromjpeg($resized_filename);  
    imagewebp($imagetoconvert, $webp_filename, 80);
    imagedestroy($resized_filename);
}
 

 

на 

 

$webp_filename = preg_replace('/\.[^.]+$/','',$resized_filename).".webp";
$info = getimagesize($resized_filename);
if (file_exists($webp_filename)) {
} else {
	if ($info['mime'] == 'image/jpeg') {
		$imagetoconvert = imagecreatefromjpeg($resized_filename);  
		imagewebp($imagetoconvert, $webp_filename, 80);
		imagedestroy($resized_filename);
	} elseif ($info['mime'] == 'image/png') {
		$imagetoconvert = imagecreatefrompng($resized_filename);  
		imagewebp($imagetoconvert, $webp_filename, 80);
		imagedestroy($resized_filename);
	}
}
Link to post
Share on other sites
  • 6 months later...

Но я бы лучше конвертировал картинки товаров в момент загрузки в .jpeg

 

а как поймать изображения и в jpg их перевести? при ресайзе? не подскажете?

Link to post
Share on other sites
  • 2 months later...
  • 4 months later...
В 11.12.2018 в 16:50, question сказал:

Странно, я ведь писал ответ...

Для начала в районе 300 строки

            return imageJpeg($dst_img, $dst_file, $quality);

надо заменить на 

            return imageWebp($dst_img, $dst_file, $quality);

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

Автору советую проверить на работоспособность такой код:


<?

$file='1.jpg';
$image= imagecreatefromjpeg($file);
imagewebp($image,'1.webp',80);
imagedestroy($image);

?>

Если 1.webp не создаётся, значит, у вашего хостера не установлены необходимые компоненты.

Попробовал с этим решением работает, webp создается, но с эти кодом не работает ?

 

В 11.12.2018 в 22:14, question сказал:

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

Всё гениальное просто. Очень просто, но потратил на это весь вечер.

В resize.php в самый конец добавляете

 

 

 


 
$webp_filename = preg_replace('/\.[^.]+$/','',$resized_filename).".webp";
if (file_exists($webp_filename))
{
}
else
{
    $imagetoconvert = imagecreatefromjpeg($resized_filename);  
    imagewebp($imagetoconvert, $webp_filename, 80);
    imagedestroy($resized_filename);
}
 

 

 

Далее в htaccess прописываете

 


AddType image/webp .webp
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept 
</IfModule> 

 

вот с эти не работает, кто-то сталкивался с данной проблемой?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...