Bajar calidad de imagen desde URL

  • Autor Autor Camilo Ruiz
  • Fecha de inicio Fecha de inicio
C

Camilo Ruiz

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de 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!
 
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 el archivo adjunto 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?
 
¿Lazy load de imagenes?
 
¿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
 
Atrás
Arriba