make - PHP/JS: crea miniaturas sobre la marcha o almacena como archivos
resize image laravel (5)
Para una aplicación web de alojamiento de imágenes:
Para mis imágenes almacenadas, ¿es factible crear miniaturas sobre la marcha usando PHP (o lo que sea), o debería guardar 1 o más miniaturas de diferentes tamaños en el disco y simplemente cargarlas?
Cualquier ayuda es apreciada.
Depende del patrón de uso del sitio, pero, básicamente, ¿cuántas veces espera que se visualice cada imagen?
En el caso de las miniaturas, es más probable que permanezcan por bastante tiempo (la imagen se carga una vez y nunca cambia, por lo que la miniatura no cambia tampoco), por lo que generalmente vale la pena generar cuando se carga la imagen completa y almacenarlos para más tarde. A menos que el sitio esté completamente muerto, se verán muchas (cientos o miles de veces) a lo largo de su vida y el disco es mucho más económico que la latencia en estos días. Esto también se vuelve más significativo a medida que aumenta la carga en el servidor, por supuesto.
Por el contrario, para algo así como los gráficos comunes que se actualizan cada hora (si no con más frecuencia), esa sería una situación en la que sería mejor crearlos sobre la marcha, para evitar perder el tiempo de la CPU generando constantemente imágenes que no el usuario lo verá alguna vez
O bien, si quieres ser elegante, puedes optimizar para manejar cualquiera de los patrones de acceso generando las imágenes sobre la marcha la primera vez que se necesitan y luego mostrando la pregenerada luego, hasta que los datos que se generan a partir de los cambios, en ese punto lo borras para que se regenere la próxima vez que sea necesario. Pero eso sería excesivo para algo tan estático como las miniaturas, IMO.
Guarde las miniaturas en el disco. El procesamiento de imágenes requiere una gran cantidad de recursos y, dependiendo del tamaño de la imagen, puede exceder el límite de memoria permitido predeterminado para php. Es menos preocupante si tiene su propio servidor con solo la aplicación ejecutándose, pero aún requiere mucha potencia de la CPU y memoria para cambiar el tamaño de las imágenes. Si está pensando en crear miniaturas sobre la marcha de todos modos, no tiene que cambiar mucho: en la primera solicitud, cree la miniatura del archivo de origen, guárdelo en el disco y, en las siguientes solicitudes, simplemente descárguelo del disco.
Sería mucho mejor guardar en memoria caché las miniaturas. Generarlos sobre la marcha sería muy agotador en el sistema.
Yo uso phpThumb , ya que es lo mejor de ambos mundos. Puede crear miniaturas sobre la marcha, pero guarda automáticamente en caché las imágenes para acelerar las futuras solicitudes. Crea una buena envoltura alrededor de las bibliotecas GD e ImageMagick. ¡Digno de una mirada!
echa un vistazo a la biblioteca gd y imagemagick