Recorte de miniaturas con add_image_size

23 ene 2012, 05:19:44
Vistas: 22.2K
Votos: 1

Quiero que mis miniaturas en una página particular sean exactamente de 300px × 100px. Actualmente, las imágenes se reducen hasta alcanzar la marca de 300 píxeles o 100 píxeles. ¿Cómo puedo hacer que la imagen se recorte exactamente a 300 × 100 (preferiblemente sin distorsión de imagen)?

// functions.php:
if ( function_exists( 'add_image_size' ) ) add_theme_support( 'post-thumbnails' );

if ( function_exists( 'add_image_size' ) ) { 
    // Miniatura para posts
    add_image_size( 'post-thumb', 620, 207, true );
    // Miniatura para inicio
    add_image_size( 'home-thumb', 220, 180, true );
    // Miniatura para índice
    add_image_size( 'index-thumb', 300, 100, true );
}

// index.php:
if ( has_post_thumbnail()) the_post_thumbnail('index-thumb');
4
Comentarios

¿Las imágenes que se están reduciendo deben ser las imágenes que se subieron antes de especificar estos tamaños? ¿O también tienes problemas con las cargas más recientes? Porque el parámetro true realmente recorta las imágenes sin distorsionarlas.

Hameedullah Khan Hameedullah Khan
23 ene 2012 15:59:53

Lo tengo configurado como true pero la imagen no se recorta a 300 por 100. Se recorta a 300 por X píxeles o a Y píxeles por 100. Cualquiera que ocurra primero.

pope pope
23 ene 2012 22:57:04

Así es como WP recorta, para el recorte exacto de 300x100, consulta la solución en: http://wpquestions.com/question/show/id/1098. NOTA: No lo he probado yo mismo.

Hameedullah Khan Hameedullah Khan
24 ene 2012 04:18:17

He tenido los mismos problemas, encontré esto y me está funcionando - http://sumtips.com/2011/12/custom-image-sizes-in-wordpress.html

User User
11 oct 2012 18:10:49
Todas las respuestas a la pregunta 3
0

Consulta la entrada del Codex sobre add_image_size():

<?php add_image_size( $name, $width, $height, $crop ); ?>

El parámetro $crop es clave:

(booleano) (opcional) Recortar la imagen o no. False - Modo de recorte proporcional suave; True - Modo de recorte duro.

Por defecto: false

Es decir:

  • False (por defecto): redimensionamiento de caja - (redimensiona la imagen respetando la dimensión restrictiva)
  • True: recorte duro - recorta la imagen exactamente a las dimensiones especificadas

Por lo tanto, tu código debería funcionar:

// Añadir soporte para el Tema
add_theme_support( 'post-thumbnails' );

// Registrar tamaños de imagen personalizados
add_image_size( 'post-thumb', 620, 207, true );
add_image_size( 'home-thumb', 220, 180, true );
add_image_size( 'index-thumb', 300, 100, true );

Si encuentras que tus imágenes no se muestran correctamente, hay un par de cosas que verificar:

  • Para imágenes añadidas antes de implementar estos tamaños personalizados, necesitarás regenerar las miniaturas para esas imágenes
  • Los tamaños de imagen no se generarán para imágenes que no sean al menos tan grandes como las dimensiones especificadas para un tamaño dado. Por lo tanto, asegúrate de que tus imágenes sean al menos tan grandes como tu tamaño de recorte duro más grande. (Las imágenes redimensionadas por caja no tienen esta restricción y solo necesitan ser al menos tan grandes como la dimensión más pequeña del tamaño especificado.)
15 nov 2012 18:36:48
0

Echa un vistazo a este plugin

  • Crea tamaños de imagen ilimitados (recortados y sin recortar)
  • Añade los tamaños en el campo de selección de medios
  • Incluye filtros CSS y animaciones
  • Gestiona marcas de agua
21 mar 2014 10:36:32
5
-1

Intenta cambiar el parámetro "true" a "false". También puedes eliminar las declaraciones "if" en el archivo functions.php si no son necesarias para otra funcionalidad...

23 ene 2012 06:12:57
Comentarios

El parámetro true realmente recorta la imagen, si lo estableces en false la imagen no se recortará, en su lugar se redimensionará.

Hameedullah Khan Hameedullah Khan
23 ene 2012 16:00:58

Marcarlo como true o false me da el mismo resultado.

pope pope
23 ene 2012 17:27:02

¿te aseguraste de que tus imágenes son realmente más grandes que los tamaños que definiste como miniaturas? ¿y probaste eliminar las cláusulas "if"?

krembo99 krembo99
23 ene 2012 18:47:15

Probé con imágenes más grandes. El mismo resultado. Al eliminar las cláusulas if da un error.

pope pope
23 ene 2012 21:42:43

¿Puedes indicar el error?

krembo99 krembo99
24 ene 2012 15:37:22