Ставим библиотеку GD на сервер если она не установлена
|
1 |
yum install php-gd |
Перезапускаем Apache
|
1 |
systemctl restart httpd |
Ф-ция для конвертации в jpg
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function convertPngToJpg($filePath, $quality = 90) { $filePath = $_SERVER["DOCUMENT_ROOT"] . $filePath; if (file_exists($filePath) && pathinfo($filePath, PATHINFO_EXTENSION) === 'png') { $image = imagecreatefrompng($filePath); if ($image !== false) { $bg = imagecreatetruecolor(imagesx($image), imagesy($image)); imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255)); imagealphablending($bg, TRUE); imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image)); imagedestroy($image); // Удаляем расширение .png и добавьте .jpg к имени файла $jpgFilePath = preg_replace('/\.png$/', '.jpg', $filePath); // Сохраняем изображение в формате JPEG imagejpeg($bg, $jpgFilePath, $quality); imagedestroy($bg); return $jpgFilePath; // Возвращаем путь к новому JPEG-изображению } } return false; // Если что-то пошло не так } |
Ф-ция для конвертации в webp
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function convertToWebP($filePath, $quality = 90) { $filePathServer = $_SERVER["DOCUMENT_ROOT"] . $filePath; if (file_exists($filePathServer)) { $extension = pathinfo($filePathServer, PATHINFO_EXTENSION); if ($extension === 'png' || $extension === 'jpg' || $extension === 'jpeg') { // Открываем изображение в зависимости от расширения if ($extension === 'png') { $image = imagecreatefrompng($filePathServer); } elseif ($extension === 'jpg' || $extension === 'jpeg') { $image = imagecreatefromjpeg($filePathServer); } if ($image !== false) { // Удалите расширение оригинального файла и добавьте .webp к имени файла $webpFilePath = preg_replace('/\.(png|jpg|jpeg)$/', '.webp', $filePathServer); // Сохраните изображение в формате WebP imagewebp($image, $webpFilePath, $quality); imagedestroy($image); return preg_replace('/\.(png|jpg|jpeg)$/', '.webp', $filePath); // Возвращаем путь к новому WebP-изображению } } } return false; // Если что-то пошло не так } |
