Baixar qualidade de imagem a partir de URL

  • Autor Autor Camilo Ruiz
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
C

Camilo Ruiz

Curioso
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Lo que sucede es que debo enviar a través de un webservice una imagen en base64, pero la imagen pesa alrededor de 2,5 MB y al codificarla en base64 el consumo del servicio es bastante pesado. La imagen la tengo en una URL.

Quisiera saber como puedo disminuir la calidad de esa imagen y dejarla en una variable en PHP para convertirla en base64 sin tener que guardarla en el servidor.

GRACIAS!
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Lo que sucede es que debo enviar a través de un webservice una imagen en base64, pero la imagen pesa alrededor de 2,5 MB y al codificarla en base64 el consumo del servicio es bastante pesado. La imagen la tengo en una URL.

Quisiera saber como puedo disminuir la calidad de esa imagen y dejarla en una variable en PHP para convertirla en base64 sin tener que guardarla en el servidor.

GRACIAS!
Puedes hacer algo como esto, donde 75 es la calidad de la imagen.

PHP:
<?php

$imagen = imagecreatefromjpeg('imagen.jpg');

ob_start();

imagejpeg($imagen, null, 75);
imagedestroy($imagen);

$get_imagen = ob_get_clean();
$base64_imagen = base64_encode($get_imagen);

?>
 
bueno si deseas comprimir la imagen Y reducir la calidad puedes usar Compressor https://compressor.io/ lo cual reduces los MB y prueba que tal te va al convertirlo a base64
 
Gracias!! La solución de YeltsinReyes me funciono para lo que necesitaba!!! Solo me queda una pregunta, si requiero imprimir la imagen en el html?

1659364886361.webp


Es decir necesito imprimir una imagen que tengo en una URL con una menor calidad ya que son muchas tarjetas las que tengo que mostrar.

Muchas gracias!
 
Gracias!! La solución de YeltsinReyes me funciono para lo que necesitaba!!! Solo me queda una pregunta, si requiero imprimir la imagen en el html?

Ver o anexo 809982

Es decir necesito imprimir una imagen que tengo en una URL con una menor calidad ya que son muchas tarjetas las que tengo que mostrar.

Muchas gracias!
Mostrar una imagen que esta en tu servidot?
 
Gracias!! La solución de YeltsinReyes me funciono para lo que necesitaba!!! Solo me queda una pregunta, si requiero imprimir la imagen en el html?

Ver o anexo 809982

Es decir necesito imprimir una imagen que tengo en una URL con una menor calidad ya que son muchas tarjetas las que tengo que mostrar.

Muchas gracias!

En el HTML insertas la imagen en base64

HTML:
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
        9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Repost" />
 
Gracias! efectivamente me funcionó con la recomendación de moiseseccam. Sin embargo tengo el problema que son imagenes que estan en S3 y lo que estoy haciendo es bajarles la calidad para que aparezcan todas.... pero son 300 imagenes que debo poner y toma mucho tiempo en cargar. ¿Quizas se les ocurre alguna idea?

Gracias!
 
Gracias! efectivamente me funcionó con la recomendación de moiseseccam. Sin embargo tengo el problema que son imagenes que estan en S3 y lo que estoy haciendo es bajarles la calidad para que aparezcan todas.... pero son 300 imagenes que debo poner y toma mucho tiempo en cargar. ¿Quizas se les ocurre alguna idea?

Gracias!
¿300 imágenes en la misma página?
 
¿300 imágenes en la misma página?
Siii! Para contextualizarte, es un listado de las personas que pertenecen a una empresa, y lo que quiero es mostrar su fotografia con su nombre
 
No entiendo por qué debes mostrar 300 tarjetas en una página, podrías usar un paginador.
Sin embargo si igual necesitas mostrar las 300 tarjetas, por arriba ya te dijeron Lazy Load (aquí un ejemplo)

Saludos
 
Voltar
Topo