Всем доброго времени суток.
Друзья. Возник вопрос. Пытаюсь конвертировать изображения на сайте битрикс из форматов 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