Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Excesiva creacion de imagenes derivadas

Estas en el tema de Excesiva creacion de imagenes derivadas en el foro de WordPress en Foros del Web. tengo una consulta urgente, el tema es el siguiente; estuve revisando las imagenes subidas y veo que por una sola imagen que se sube ,se ...
  #1 (permalink)  
Antiguo 21/08/2014, 10:23
Avatar de marche85  
Fecha de Ingreso: septiembre-2006
Mensajes: 103
Antigüedad: 12 años, 3 meses
Puntos: 0
Exclamación Excesiva creacion de imagenes derivadas

tengo una consulta urgente, el tema es el siguiente; estuve revisando las imagenes subidas y veo que por una sola imagen que se sube ,se crean otras 17, y llena muy rapido asi la cuenta del hosting, es muy poco optimo, probando y viendo si era algún plugin voy a la sección de editar, functions.php y me encuentro con esto.


// This theme uses post thumbnails
add_theme_support( 'post-thumbnails' );
add_theme_support( 'post-formats', array( 'gallery' ) );

if ( function_exists( 'add_image_size' ) ) {

/* Guía Comercial */
add_image_size( 'guia-banner-lead', 643, 113, true );
add_image_size( 'guia-comercio-logo', 224, 109, true );
add_image_size( 'guia-comercio-logo-small', 122, 105, true );
add_image_size( 'guia-comercio-logo-widget', 212, 150, true );
add_image_size( 'guia-comercio-thumbs', 253, 161, true );
add_image_size( 'guia-comercio-large', 800, 600 );
add_image_size( 'guia-comercio-thumbs-index', 225, 149, true );
add_image_size( 'guia-comercio-thumbs-index-small', 124, 109, true );

/* Posts */
add_image_size( 'post-featured', 640, 294, true );
add_image_size( 'post-large', 800, 600 );
add_image_size( 'post-large-magazine', 559, 406 );
add_image_size( 'post-thumbs', 135, 135, true );
add_image_size( 'post-thumbs-magazine', 278, 218, true );
add_image_size( 'post-thumb-widget', 204, 144, true );
add_image_size( 'post-thumb-category', 237, 167, true );

/* Slider */
add_image_size( 'slider-frontpage-big', 720, 342, true );
add_image_size( 'slider-frontpage-thumb', 251, 108, true );
add_image_size( 'slider-inner-big', 644, 246, true );

// CARTELERA
add_image_size( 'movie-poster', 65, 95, true );
}

}
endif;

Como es un tema propio para una guia de una ciudad, tiene muchas secciones, noticias, guia comercial, cartelera de cine, etc, y por cada imagen que se alza, me crea una otras imagenes para secciones que nunca voy a usar.. por ejemplo, subo una imagen para un negocio en la guia comercial, y me crea otras 16, para secciones que no corresponden, pregunte al desarrollador y me dijo que puedo eliminar el codigo de arriba, pero que al subir la/las /imagen/es no se van a ver bien, se tienen las dimenciones exactas para las imagenes en cada sección, no probé aún lo que me dijo el desarrollador (ya no trabaja con nosotros, solo le pedi un "consejo"), pero no se podría hacer algo así:

si es una entrada para la seccion magazine
redimenciona imagenes para esta seccion
si es una entrada para la seccion guia comercial
redimenciona imagenes para esta seccion

....
etc


es posible eso? al mrenos para que no se vayan creando más imagenes que solo hacen que mi server se esté llenando de manera rapida y poco eficiente.

También busque soluciones rapidas, como plugins que me buscan las imagenes que figuran en la bbdd y no estan en ningun post, pero no se que tan bueno es eso.

Lo ideal es que cree lo menos posible de imagenes derivadas, es cierto que que tiene que crear imagenes en miniatura para la seccion principal, porque se muestran solo en parte.. a modo de que me entiendan mejor ahí va la web.

desde ya gracias...
__________________
“Cuando el juego acaba, el rey y el peón vuelven a la misma caja"
  #2 (permalink)  
Antiguo 21/08/2014, 11:00
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 16 años, 11 meses
Puntos: 193
Respuesta: Excesiva creacion de imagenes derivadas

Eso es correcto, en WordPress aun no puedes indicar que miniaturas crear cuando subes una imagen (Es una buena idea para un Plugin).

Lo que puedes hacer es crear dichas miniaturas "on the fly" es decir cuando solo cuando se necesite a partir de la imagen original, de esta forma al subir una imagen solo se almacena 1 imagen y no las 17.

Para ello puedes usar scripts de PHP, Timthumb es el mas famoso, pero por lo mismo, el mas explotado en cuestiones de seguridad., obviamente existen alternativas como Wordpress-Timthumb-alternative.

La tarea no es simple ya que tendrás que modificar el código del Theme para que en lugar de usar "get_the_post_thumbnail" que toma las imágenes miniatura, use el script de PHP para generar la imagen con el tamaño correspondiente y así poder eliminar cualquier rastro de "add_image_size".

Saludos!
  #3 (permalink)  
Antiguo 21/08/2014, 11:15
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.192
Antigüedad: 10 años, 9 meses
Puntos: 1017
Respuesta: Excesiva creacion de imagenes derivadas

Como complemento a lo que @TMeister menciona, has de considerar que el crear las miniaturas al aire solo es bueno en un sitio que mostrara pocas imágenes, en el momento que tu sito muestra muchas imágenes se volverá una carga aun peor que almacenar muchas imágenes....

esto es porque cada imagen representa un proceso adicional que ralentizara tu sitio conforme el numero aumente, en consecuencia se volverá insoportable para el visitante y se ira a otro lado... lo digo por experiencia.

Yo optaría por borrar el código de las miniaturas que estés 100% seguro que no usaras... y por su puesto siempre que sea posible desde tu pc antes de subir redimenciona y optimiza la imagen al tamaño necesario (al que se mostrara)
__________________
Toda ayuda se proporciona exclusivamente en el foro, no skype, no mensajes privados u otro medio....
  #4 (permalink)  
Antiguo 21/08/2014, 18:33
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.684
Antigüedad: 9 años, 5 meses
Puntos: 425
Respuesta: Excesiva creacion de imagenes derivadas

Interesante este tema. Otra posibilidad en sitios con tantas secciones diferentes creo que podría ser separar las secciones en varios blogs de un multisitio, por ejemplo sitioprincipal.com/guia-comercial, sitioprincipal.com/magazin... en lugar de sitioprincipal.com/category/guia-comercial... etc.

No sé si es factible en este proyecto, pero esta organización permitiría mejores URLS y además un control más eficaz de colaboradores sin tener que recurrir a plugins.
__________________
Mi blog personal | Mi G+
  #5 (permalink)  
Antiguo 25/08/2014, 12:34
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.024
Antigüedad: 14 años, 6 meses
Puntos: 832
Respuesta: Excesiva creacion de imagenes derivadas

Creo que la creación de nuevos tamaños prestablecidos debería obedecer a una planificación previa, en lugar de una generación indiscriminada que al final del día termina acumulando basura en el sistema de archivos. La planificación podría ser así:

1.- Estableciendo una proporción alto/ancho que sea fija. Por ejemplo 180x135, 240x180, 320x240, 480x320, 640x480, 800x600, 1024x768, etc. (la proporción puede ser distinta, lo importante es que sea respetada) Esto nos ayuda a aprovechar ciertos tamaños en algunas zonas requeridas cuya maquetación requiera otros tamaños de los existentes.

2.- Recordemos que el redimensionamiento de imágenes por "fuerza bruta" (es decir vía HTML) es aceptable hasta cierto punto, por lo cual en ocasiones no es necesario crear nuevos tamaños si ya existe un tamaño que se acerque al requerido (esto es mucho más efectivo si aplicamos el punto 1). Por ejemplo: si necesitamos una imagen de 290px de ancho en nuestra sección "Lista de productos" es válido usar la versión de 320px existente y encogerla un poco con width y height.

3.- La creación selectiva de nuevos tamaños prestablecidos (comentario de TMeister) sería genial para ahorrar cierto espacio en disco, pero a cambio nos dificultaría un poco la existencia en otros escenarios, por ejemplo si habilitamos/diseñamos otra sección donde necesitemos "ese" tamaño específico que el sistema no generó en su momento. Por tanto creo que el problema no es la cantidad de versiones generadas por imagen, sino el abuso del recurso desde el principio. Nuestro premio será grande si adoptamos cierto sentido minimalista en la planificación del contenido.

4.- Para generar nuevos tamaños prestablecidos recomiendo este plugin: https://wordpress.org/plugins/simple-image-sizes/ . Éste no sólo los crea, sino que regenera los existentes si así lo decidimos. El plugin es fiable, personalmente lo tengo en la lista de esenciales.
  #6 (permalink)  
Antiguo 03/10/2014, 11:41
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.192
Antigüedad: 10 años, 9 meses
Puntos: 1017
Respuesta: Excesiva creacion de imagenes derivadas

Tras encontrarme en el mismo caso del compañero y meditarlo mucho por la necesidad de evitar que se creen imágenes innecesarias.

me he decantado por deshabilitar totalmente la funcionalidad de wordpress para crear las variantes al subir la imagen.... para compensar esto, he editado el template para que en lugar de mandar a llamar un tamaño preestablecido con
Código PHP:
Ver original
  1. add_image_size('galeria', 260, 140, true);

ejecute la función wp_get_image_editor() para comprobar si la imagen existe en el tamaño requerido, en caso de no existir se crea la imagen antes de llamarla y mostrarla.... con esto consigo que solo se creen imágenes necesarias.

Como estaba dudoso de su rendimiento a la larga por hacer dicha comprobación en cada carga del sitio, lo he complementado con el plugin wp supercache, para evitar la comprobación cuando el sitio no ha sufrido cambios.
__________________
Toda ayuda se proporciona exclusivamente en el foro, no skype, no mensajes privados u otro medio....

Etiquetas: imagenes, php, plugin, post, tema, theme
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:45.