«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как конвертировать PNG в JPG с помощью PHP, сохраняя качество и прозрачность?

Как конвертировать PNG в JPG с помощью PHP, сохраняя качество и прозрачность?

Опубликовано 22 ноября 2024 г.
Просматривать:116

How to Convert PNG to JPG with PHP While Maintaining Quality and Transparency?

Как конвертировать PNG в JPG с сохранением качества PHP

Многие веб-сайты предпочитают изображения JPG из-за их уменьшенного размера файла без ущерба для визуального качества. Если у вас есть коллекция файлов PNG и вам необходимо преобразовать их в JPG с помощью PHP, вот подробное руководство:

Функции и библиотеки PHP для преобразования PNG в JPG

PHP предлагает несколько функций и библиотек, которые эффективно обрабатывают изображения.

imagecreatefrompng(): читает PNG-файл. и создает ресурс изображения.
imagejpeg(): выводит изображение JPG из ресурса изображения.
imagecopy(): копирует часть одного изображения на другое.
imagedestroy(): освобождает память, связанную с изображением. ресурс.

Фрагмент кода преобразования

Чтобы безопасно преобразовать PNG в JPG с прозрачностью белого цвета, выполните следующие действия:

  1. Загрузите PNG изображение с помощью imagecreatefrompng().
  2. Создайте фоновое изображение истинного цвета, заполненное белым, с помощью imagecreatetruecolor() и imagefill().
  3. Включите альфа-смешивание, чтобы сохранить прозрачность с помощью imagealphablending().
  4. Скопируйте изображение PNG на фоновое изображение с помощью imagecopy().
  5. Уничтожьте исходный PNG ресурс изображения с помощью imagedestroy().
  6. Установите желаемое качество изображения (0–100) для JPG. file.
  7. Выведите изображение JPG с помощью imagejpeg().
  8. Уничтожьте ресурс фонового изображения с помощью imagedestroy().
$image = imagecreatefrompng($filePath);
$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);
$quality = 50; // 0 = worst / smaller file, 100 = better / bigger file
imagejpeg($bg, $filePath . ".jpg", $quality);
imagedestroy($bg);
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3