Codeigniter不能维持纵横比

6

如果我只指定高度,我希望$config['maintain_ratio'] = TRUE;会导致宽度被计算。我猜我必须为高度提供任何大的数字才能使它起作用吗?

    $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);
3个回答

16

是的,您必须同时指定高度和宽度。由于启用了maintain_ratio选项,调整大小将尽可能接近目标大小,同时保留原始长宽比。

但是,如果您想确保始终是某个特定的高度,请将master_dim配置选项设置为“height”,然后可以将宽度设置为任何值,并且它始终会将调整大小的图像调整为该高度,同时保持宽度的纵横比。同样的想法也适用于维护宽度。


2
早些时候看到你的答案就好了,如果我有lol,我就不会用数学解决方法填充我的图像调整大小代码。 - siaooo

9

@Mitchell McKenna, 谢谢,这对我帮助很大。

在我的项目中,源图像可以是任何尺寸。 我想要它的宽度为“245”像素,并保持比例, 所以, 我就这样做了....

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

它有效了。谢谢。


0
设置另一个维度为1将根据第一个值重新调整大小。例如,如果您想保持宽度=700像素,并根据此比例计算高度;
$config['width'] = 700;
$config['height'] = 1; // force resizing based on width

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接