2010-09-13 15 views
6

Espero que $config['maintain_ratio'] = TRUE; haga que se calcule el ancho si solo especifico una altura. Supongo que tengo que proporcionar un número grande para que la altura funcione.Codeigniter que no mantiene la relación de aspecto

$config['image_library'] = 'gd2'; 
    $config['source_image']  = $image_filepath; 
    $config['new_image']  = $thumbnail_filepath; 
    $config['maintain_ratio'] = TRUE; 
    $config['height']   = $this->thumbnail_height; 

    $this->image_lib->initialize($config); 

Respuesta

16

Correcto, DEBE especificar tanto la altura como el ancho. Dado que la opción maintain_ratio está habilitada, el cambio de tamaño será lo más cercano posible al tamaño objetivo mientras se conserva la relación de aspecto original.

Sin embargo, si usted quiere asegurarse de que es siempre una cierta altura, establezca la opción master_dim config para 'altura', entonces se puede establecer el ancho a nada y siempre hará que el tamaño de imagen que la altura manteniendo al mismo tiempo los aspectos relación con el ancho Una idea similar funciona para mantener el ancho.

+2

Debería haber visto su respuesta antes, no habría llenado mi código de resizer de imagen con soluciones matemáticas si tuviera jajaja – siaooo

7

@Mitchell McKenna, Gracias. Me ayudó mucho.

En mi proyecto, la imagen de origen podría haber sido de cualquier tamaño. y quería su anchura de '245' px, la relación se mantiene, Así, que acabo de hacer como esto ....

$config['width'] = '245'; 
$config['height'] = '1'; 
$config['maintain_ratio'] = TRUE; 
$config['master_dim'] = 'width'; 

y funcionó. Gracias

0

Establecer la otra dimensión en 1 hará el cambio de tamaño basado en el primer valor. Por ejemplo, si desea mantener el ancho = 700px y calcular la altura en función de esta relación;

$config['width'] = 700; 
$config['height'] = 1; // force resizing based on width 
Cuestiones relacionadas