malditoraton.com

Modificar Random Image Selector

by Marat on feb.11, 2009, under Wordpress

Random Image Selector es plugin de WordPress para presentar imágenes aleatorias de un directorio determinado.

Presenta, entre sus opciones, la posibilidad de seleccionar cómo se va a redimensionar la imagen, fijando el ancho, calcula el alto; fijando el alto, calcula el ancho. La tercera opción “Constraint both width an height” fija ambas medidas.

El problema de esta última opción es, que las imágenes rectangulares (la mayoría), son deformadas para caber exactamente en el cuadrado definido por ambas medidas, como se muestra en la siguiente imagen tomada de Flickr.

gusano gusano2
Imagen original Imagen mostrada por Random Image Selector

La solución pasa por editar el archivo que se encuentra en ../wp-content/plugins/random-image-selector/randomImage.php. Entre la línea 220 y 238 ( en la versión 1.5.4) encontramos el siguiente código:

 switch($scaleOption)
    {
      case 'high':
	$ratio = $physHeight / $scaleHeight;
        $physWidth = $physWidth / $ratio;
        $physHeight = $scaleHeight;
	break;
      case 'wide':
	$ratio = $physWidth / $scaleWidth;
        $physHeight = $physHeight / $ratio;
        $physWidth = $scaleWidth;
	break;
      case 'spec':
	$physHeight = $scaleHeight;
	$physWidth = $scaleWidth;
	break;
      default:
	break;
    }

 

que deberemos sustituir por este otro:

//***********Copy from here****************
// Modificado por http://www.malditoraton.com
 switch($scaleOption)
    {
      case 'high':
	$ratio = $physHeight / $scaleHeight;
        $physWidth = $physWidth / $ratio;
        $physHeight = $scaleHeight;
	break;
      case 'wide':
	$ratio = $physWidth / $scaleWidth;
        $physHeight = $physHeight / $ratio;
        $physWidth = $scaleWidth;
	break;
      case 'spec':
	if ($physHeight < $physWidth){
	$ratio = $physWidth / $scaleWidth;
	$physWidth = $scaleWidth;
        $physHeight = $physHeight / $ratio;
	}else{
	$ratio = $physHeight / $scaleHeight;
	$physHeight = $scaleHeight;
        $physWidth = $physWidth / $ratio;
	}
	break;
      default:
	break;
    }
//**************to here************************

 

y la imagen os la devolverá perfectamente ajustada, para que quepa sin deformación en una ventana definida por las medidas para las que se ha configurado el plugin. Si preferís no editar código podeis descargar la versión completa desde este enlace random-image-selector

:,

Leave a Reply

You must be logged in to post a comment.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!