Почему некорректно отрабатывает скрипт php для конвертации фото в формат WebP?

Всем доброго времени суток.
Друзья. Возник вопрос. Пытаюсь конвертировать изображения на сайте битрикс из форматов jpg/png в WebP и конвертация проходит не правильно. Что не так?

На хостинге используется библиотека gd_php для работы с webp.

функция конвертации
class Webp {

public static function convertImageWebp($file_type, $read_from_path) {

	$save_to_path = $read_from_path . '.webp';
	$output = '';

	$file = $read_from_path;
	if($file_type == 'image/png')
	{
		$image = imagecreatefrompng($file);
	}
	elseif($file_type == 'image/jpeg')
	{
		$image = imagecreatefromjpeg($file);
	}
	ob_start();
	imagejpeg($image,NULL,100);
	$cont = ob_get_contents();
	ob_end_clean();
	imagedestroy($image);
	$content = imagecreatefromstring($cont);
	imagewebp($content,$save_to_path);
	imagedestroy($content);

	if(filesize ( $save_to_path ) > 0)
	{
		$output = str_replace($_SERVER["DOCUMENT_ROOT"], '', $save_to_path);
	}

	return $output;
}
}


обращение к функции
use \Webp;
			$file_type = $arResult['DETAIL_PICTURE']['CONTENT_TYPE'];
			$img_webp = Webp::convertImageWebp($file_type, $_SERVER["DOCUMENT_ROOT"] . $arResult['DETAIL_PICTURE']["SRC"]);
			$arResult['DETAIL_PICTURE']['SRC_WEBP'] = $img_webp;


замена в html
<picture>
	<source srcset="<?=$arResult['DETAIL_PICTURE']['SRC_WEBP']?><?//echo $img_webp;?>" type="image/webp">
	<source type="<?=$arResult['DETAIL_PICTURE']['CONTENT_TYPE']?>" srcset="<?=$arResult['DETAIL_PICTURE']["SRC"]?>">
	<img class="detail_picture" border="0" width="163" src="<?=$arResult['DETAIL_PICTURE']['SRC']?>" alt="<?=$arResult['DETAIL_PICTURE']['ALT']?>">
</picture>


Буду признателен!

в итоге он конвертирует так
/upload/iblock/83b/83be3c1776012b6f0ceb4fbcbb9f5f47.png.webp
вместо
/upload/iblock/83b/83be3c1776012b6f0ceb4fbcbb9f5f47.webp
  • Вопрос задан
  • 512 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
$save_to_path = preg_replace("/(.png)|(.jpg)|(.jpeg)/", "", $read_from_path) . ".webp";
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы