"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como converter PNG para JPG com PHP mantendo a qualidade e a transparência?

Como converter PNG para JPG com PHP mantendo a qualidade e a transparência?

Publicado em 2024-11-22
Navegar:143

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

Como converter PNG para JPG com PHP preservando a qualidade

Muitos sites preferem imagens JPG devido ao tamanho reduzido do arquivo sem comprometer a qualidade visual. Se você tem uma coleção de arquivos PNG e precisa convertê-los para JPG usando PHP, aqui está um guia completo:

Funções e bibliotecas PHP para conversão de PNG para JPG

PHP oferece diversas funções e bibliotecas que lidam com eficiência com a manipulação de imagens.

imagecreatefrompng(): Lê um arquivo PNG e cria uma imagem recurso.
imagejpeg(): gera uma imagem JPG de um recurso de imagem.
imagecopy(): copia uma parte de uma imagem para outra.
imagedestroy(): libera memória associada a um recurso de imagem.

Código de conversão Snippet

Para converter PNG em JPG com segurança com transparência em branco, siga estas etapas:

  1. Carregue a imagem PNG usando imagecreatefrompng().
  2. Criar uma imagem de fundo em cores verdadeiras preenchida com branco usando imagecreatetruecolor() e imagefill().
  3. Ative a mistura alfa para preservar a transparência com imagealphablending().
  4. Copie a imagem PNG para a imagem de fundo usando imagecopy().
  5. Destrua o recurso de imagem PNG original usando imagedestroy().
  6. Defina a imagem desejada qualidade (0-100) para o arquivo JPG.
  7. Produza a imagem JPG usando imagejpeg().
  8. Destrua o recurso de imagem de fundo usando 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);
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3