Pregunta

¿Hay alguna forma de mostrar una imagen en un servidor reducido y redimensionada sin guardar una reducida? Como si una imagen fuera 500x500 250kb, quiero que muestre 50x50 45kb en el navegador de un usuario.

Si no hay una manera, ¿cómo puedo crear temporalmente uno para ir a una carpeta y eliminar más tarde después de que haya pegado algún tiempo?

¿Fue útil?

Solución

header("Content-type: image/jpeg");
$image = imagecreatefromjpeg($url);
$thumbImage = imagecreatetruecolor(50, 50);
imagecopyresized($thumbImage, $image, 0, 0, 0, 0, 50, 50, 500, 500);
imagejpeg($thumbImage,"",85);
imagedestroy($image);
imagedestroy($thumbImage);

Pero debe almacenar en caché el resultado de alguna manera para reducir la carga en el servidor.

Otros consejos

Sugeriría encarecidamente que, en lugar de tratar de cambiar la imagen de una imagen grande que en el tiempo de carga almacene una versión más pequeña y mantenga la versión original. Usando alojamiento de nubes como S3, puede hacerlo a bajo precio.

El proceso más lógico es realizar la operación costosa (escalar la foto) una vez en lugar de varias veces.

En respuesta a su otra pregunta, puede usar GD o ImageMagick para escalar una imagen. Hay cientos de tutoriales sobre cómo hacer esto. Si quieres seguir esta ruta, buscaría un tutorial en Google y probaría.

Parece que todo lo que quieres hacer es establecer el height y width Atributos de la etiqueta de imagen HTML.

<img src='blah' height=50 width=50 />

Los porcentajes también se pueden usar.

CSS permite un poco más de control y se puede aplicar a todas las imágenes (o todas las imágenes de una determinada clase). Con él puedes especificar max-height y max-width que no afectará imágenes más pequeñas. A continuación se aplicará a todas las imágenes con clase resizedimages

.resizedimages {max-height: 400px; max-width: 400px}

Si no está interesado en guardar una imagen redimensionada, esto suena como un problema del lado del cliente. PHP no tiene nada que ver con eso (excepto quizás hacer el HTML necesario)

Nota: Si el usuario hace clic derecho y guarda en la imagen, seguirá siendo los 250 kb completos. Estos son problemas puramente de visualización. Si este aspecto es importante para usted, entonces no sé de ninguna otra manera que no sea guardar una copia reducida.

Probablemente no son los mejores recursos, solo algunos que surgieron cerca de la cima de Google.

http://www.w3schools.com/tags/tag_img.asp
http://www.fastechws.com/tricks/web/image-max-width-height.php

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top