Jump to content

POWERED BY:

ILR master

Converter jpg para webp

Recommended Posts

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

Share this post


Link to post
Share on other sites

É 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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By maiconparra
      Olá a todos me deparei com um pequeno problema irritante. Eu estou usando um código PHP parecido com este: 
       
      $image = imagecreatefromjpeg($imagem); imagewebp($image, $caminho_do_diretório/exemplo.webp, 100); Para fazer a conversão de JPEG ou PNG para webp.
      Porém algumas imagens, não sei se é dimensionamento ou outro fator. Por vezes fica em branco depois da conversão.
      Eu já coloque em um if porque o retorno da função imagewebp é um boolean, fiz tratamento de exeção e não consigo capturar qual é o erro.
      Se alguém já tiver passado por algo parecido e puder me dar uma luz. Ficaria muito grato.
    • By LucasLV
      Olá.
      Tenho um site onde as imagens são geradas através de um arquivo PHP - utilizo esse método para retornar imagens webp ou jpg - e vi que o navegador não utiliza, ou não salva em cache, as imagens geradas dessa forma.
      Já as onde informo o caminho completo da imagem com a extensão, aparecem como utilizadas do cache.

      Esse comportamento é normal quando as imagens são geradas desse jeito ou é por não ter feito nenhuma configuração de cache no arquivo PHP que gera as imagens?
       
      Coloquei uma imagem do resultado exibido no navegador.

    • By stumpy
      Boa  noite gente estou com um site em asp clássico que até indexa no google  usei a imagem amp mas quando vou postar no facebook ou outras redes sociais ela não aparece  vi que tem o componente  para  transformar um jpg  em um webp  só que não achei nada em asp clássico alguém sabe como  consegue me ajudar ?
    • By Wallcrawler
      Olá pessoal tudo bem? Estou tentando fazer a cópia de uma imagem que está disponível na web e salvar em uma pasta no meu projeto. Essa imagem está sob protocolo SSL mas navegador consegue acessá-la normalmente. Mas o meu script php é bloqueado, e não entendo o porquê.
       
      Segue o código que estou usando:
      <?php //error_reporting(E_ALL ^ E_DEPRECATED); //ini_set('display_errors', 1); //die('Script travado!'); $start = microtime(true); set_time_limit(0); function save_image($inPath,$outPath) { //Download images from remote server $in = fopen($inPath, 'rb'); $out = fopen($outPath, 'wb'); while ($chunk = fread($in,8192)) { fwrite($out, $chunk, 8192); } fclose($in); fclose($out); } include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/classes/Rpi.class.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/functions.class.php'); $func = new FuncoesAuxiliares(); $rpi = new Rpi(); if(!isset($_GET['num_processo'])) { $rows = $rpi->Consulta('select num_processo, classe, especificacao from processos order by num_processo ASC limit 1'); } else { $rows = $rpi->Consulta("select num_processo, classe, especificacao from processos where num_processo > '" . $_GET['num_processo'] . "' order by num_processo ASC limit 1"); } $registros = 0; $arrayInsert = array(); $qtd_caracteres_total = 14; foreach ($rows as $rs) { //$rs['num_processo'] $zeros = ''; $qtd_char_processo = strlen($rs['num_processo']); //Fill zeros for($i=0; $i < ($qtd_caracteres_total - $qtd_char_processo); $i++) { $zeros .= '0'; } echo('BR5' . $zeros . $rs['num_processo'] . '<br>'); $url = 'http://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo']; //Aqui tento acessar a imagem e salvar na pasta correspondente save_image($url, __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); //copy('https://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo'], __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); $processo = $rs['num_processo']; $registros++; } $registros = number_format($registros, 0, ',', '.'); // Display Script End time $time_end = microtime(true); //dividing with 60 will give the execution time in minutes other wise seconds $execution_time = ($time_end - $start)/60; //execution time of the script echo '<b>Total Execution Time:</b> '. $execution_time .' Mins <hr><br><br>Registros: ' . $registros . '<br><br>'; echo("<a href='down_logo.php?num_processo=" . $processo ."' target='_self'>Próxima página</a><br><br>"); ?> O erro retornado é o seguinte:
       
      Warning: fopen(): SSL: Connection reset by peer in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fopen(http://www.tmdn.org/tmview/trademark/image/BR500000825642590): failed to open stream: HTTP request failed! in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fread() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 12

      Warning: fclose() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 16
       
      Só que se você tentar acessar o endereço no browser, diretamente, a imagem aparece:
       
      https://www.tmdn.org/tmview/trademark/image/BR500000825642590 
       
      Onde posso estar errando? Obrigado pela atenção de todos.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.