Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal.
Não estou conseguindo converter .jpg para .webp
Alguém pode me ajudar? Segue código abaixo:
$fotob = 'imagem.jpg';
$foto = explode('.',$fotob);
$f = $foto[0];
$forigem = $fotob;
$origem = 'fotos_noticias/'.$forigem;
$fdestino = $f.'.webp';
$destino = 'fotos_capa/'.$fdestino;
$imagem = imagecreatefromjpeg($origem);
$imgX = imagesx($imagem);
$imgY = imagesy($imagem);
$novaImagem = imagecreatetruecolor($imgX, $imgY);
imagealphablending($novaImagem, false);
imagesavealpha($novaImagem, true);
imagecopyresampled($novaImagem, $imagem, 0, 0, 0, 0, $imgX, $imgY, $imgX, $imgY);
imagewebp($novaImagem, $destino, 100);
imagedestroy($imagem); // Importante para limpar o cache
É um formato que particularmente detesto, mas em fim tentei algumas coisas aqui e a perda da qualidade da imagem ao recriar ela no servidor considerei ruim, pelo menos a meus olhos a perda de qualidade foi expressiva.
Não sei se é meu servidor ou o php que não manipula bem esse formato.
Então deixei a cargo do usuário decodificar o binário da imagem e apenas mandar esse código ao invés de fazer um upload.
Mesmo assim não consegui recriar a imagem apenas usar o código para reescrever.
Como usei script's meus tive de criar um exemplo
https://drive.google.com/file/d/1Xyv05MLGNjEhojukh4tAzXuYY6L3B1b3/view?usp=sharing
Ações:
1 Usuário - Selecionar uma imagem qualquer
2 Usuário - Codificar a imagem
3 Usuário - Pré visualizar essa imagem
4 Usuário - Adicionar todo código de informação da imagem
5 Usuário - Enviar os dados dessa imagem (não faz upload)
6 Servidor - Isolar o binário da imagem
7 Servidor - Reescrever uma imagem idêntica a selecionada pelo usuário na máquina dele