В этом уроке мы собираемся конвертировать форматы изображений друг в друга с помощью PHP. Иногда не все браузеры могут поддерживать формат изображения, например, Safari не поддерживает формат изображения WebP. Затем мы должны изменить его на другие поддерживаемые форматы.
Конвертировать JPG в формат изображения WebP
Под кодом находится конвертер jpg в png.
function hs_jpg2webp($source_file, $destination_file, $compression_quality = 100)
{
$image = imagecreatefromjpeg($source_file);
$result = imagewebp($image, $destination_file, $compression_quality);
if (false === $result) {
return false;
}
imagedestroy($image);
return $destination_file;
}
Использование функции:
echo hs_jpg2webp('img/a.jpg','img/b.webp',100);
Конвертировать PNG в формат изображения WebP
function hs_png2webp($source_file, $destination_file, $compression_quality = 100)
{
$image = imagecreatefrompng($source_file);
imagepalettetotruecolor($image);
imagealphablending($image, true);
imagesavealpha($image, true);
$result = imagewebp($image, $destination_file, $compression_quality);
if (false === $result) {
return false;
}
imagedestroy($image);
return $destination_file;
}
Использование функции:
echo hs_png2webp('img/a.png','img/b.webp',100);
Конвертировать GIF в формат изображения WebP
function hs_gif2webp($source_file, $destination_file, $compression_quality = 100)
{
$image = imagecreatefromgif($source_file);
imagepalettetotruecolor($image);
$result = imagewebp($image, $destination_file, $compression_quality);
if (false === $result) {
return false;
}
imagedestroy($image);
return $destination_file;
}
Использование функции:
echo hs_gif2webp('img/a.gif','img/b.webp',100);
Конвертировать WebP в JPG
function hs_webp2jpg($source_file, $destination_file, $compression_quality = 100)
{
$image = imagecreatefromwebp($source_file);
$result = imagejpeg($image, $destination_file, $compression_quality);
if (false === $result) {
return false;
}
imagedestroy($image);
return $destination_file;
}
Использование функции:
echo hs_webp2jpg('img/a.webp','img/b.jpg',100);
Конвертировать WebP в PNG
function hs_webp2png($source_file, $destination_file, $compression_quality = 100)
{
$image = imagecreatefromwebp($source_file);
$result = imagepng($image, $destination_file, $compression_quality);
if (false === $result) {
return false;
}
imagedestroy($image);
return $destination_file;
}
В этой функции качество сжатия находится в диапазоне от 0 до 9.
Использование функции:
echo hs_webp2png('img/a.webp','img/b.png',9);
Конвертировать WebP в GIF
function hs_webp2gif($source_file, $destination_file, $colors_count = 16)
{
$image = imagecreatefromwebp($source_file);
imagetruecolortopalette($image, false, $colors_count);
$result = imagegif($image, $destination_file);
if (false === $result) {
return false;
}
imagedestroy($image);
return $destination_file;
}
В формате gif мы добавляем аргумент подсчета цветов, чтобы определить количество используемых цветов.
Использование функции:
echo hs_webp2png('img/a.webp','img/b.gif',100);
Подробнее и примеры на тему Преобразование JPG, PNG, GIF и WebP в PHP