Cómo redimensionar una imagen

Llevo mucho tiempo buscando una forma fácil y sencilla de redimensionar imágenes ya estén en mi directorio, ya sean llamadas por url y siempre me había encontrado con los mismos problemas:

– O bien eran plugins muy enrevesados que tenían que crear una copia de la imagen redimensionada y por lo tanto conllevaban sus correspondientes fallos de permisos, etc

– O bien, sólo funcionaban si la susodicha imagen estaba subida en tu directorio, no valía llamando sólamente a la url.

Por lo tanto, me he llevado una grata sorpresa esta mañana cuando he encontrado esta sencilla función creada por iontxu que hace justo y sencillamente lo que quiero.

Para utilizarla en WordPress es tan fácil como pegar la siguiente función en el archivo functions.php de tu tema:


<!–?php

/*Función REDIMENSIONAR
Toma la ruta de una imagen, un valor máximo
de ancho y otro máximo de alto. Si la imagen
rebasa dichas medidas, calcula las medidas
máximas que podría tener manteniendo el
formato original para no salirse de las medidas
indicadas.

Finalmente la función imprime la imagen.
*/

function redimensionar($ruta,$ancho,$alto){

//Obtenemos las dimensiones, la ruta es absoluta.
$dim = getimagesize($ruta);
/*getimagesize() pasa un array a la variable
$dim tal que $dim[0] contiene el ancho de la imagen
y dim[1] contiene el alto.*/
if($dim[1]){
//Para asegurarnos de que dim[1] es diferente de cero
$cociente = $dim[0] / $dim[1];
}
if($alto){
//Para asegurarnos de que alto es diferente de cero
$coc_max = $ancho / $alto;
}

if(($dim[0]<=$ancho)&&($dim[1]<=$alto)){
/*En este caso no pasa nada y
la imagen se imprime con su tamaño original*/
$ancho = $dim[0];
$alto = $dim[1];
}else{
if($cociente>=$coc_max){
/*En este caso el factor más restrictivo
va a ser el ancho de la foto*/
$alto = $ancho / $cociente;
}else{
/*En este caso el factor restrictivo
va a ser la altura de la foto*/
$ancho = $alto * $cociente;
}
}
echo “< img src=’$ruta’ width=’$ancho’ height=’$alto’>”;

}
?>

Y la llamada a la función la puedes hacer donde quieras mostrar la imagen redimensionada como sigue:


<!–?php

$mi_ruta_relativa = “http://dorsvenabili.com/fotos/imagen01.jpg&#8221;; /*ruta relativa de la
imagen a mostrar*/

redimensionar($mi_ruta_relativa,600,400);

?>

Cómo mostrar la primera imagen de tus posts

Muchas veces habreis visto páginas webs o blogs donde en la página principal se muestra un resumen de los posts con su primera imagen o simplemente una imagen enlazando al post. Pues bien, hay varias formas de hacer esto en WordPress, en mi caso, la que me ha parecido más sencilla y simple es la que he encontrado en dosmiluno.org y que describo a continuación:

Lo único que hay que hacer es copiar la siguiente función en el archivo functions.php de tu plantilla de WordPress:


function get_single_image($size = ‘thumbnail’, $default = ‘default.png’) {
global $post;
$images = get_children(“post_parent=$post->ID&
post_type=attachment&
post_mime_type=image&numberposts=1”);
if (empty($images)) :
return “< img src=”” . get_bloginfo(” alt=”” />”;
else :
foreach ($images as $image) :
return wp_get_attachment_image($image->ID,$size);
endforeach;
endif;
}

¡Y listo!, ya sólo tienes que llamar a la función desde donde quieras mostrar la imagen (recuerda que la llamada a la función debe estar dentro del loop de los posts).

< ? echo get_single_image(); ?>