0

我正在使用 resize() 来调整缩略图的大小。我的源图像是 1024 * 768。这是我的配置

 $demo= array(
                  'source_image' => $x['full_path'],
                  'new_image' => $this->image,
                  'maintain_ratio' => true,
                  'create_thumb' => true,
                  'width' => 192,
                  'height' => 92
                );

但是我的图像被调整为 123 * 98。为什么不使用宽度值?

4

1 回答 1

2

您已启用该maintain_ratio选项,因此 CI 将尝试创建“在保留原始纵横比的同时尽可能接近目标宽度和高度”的缩略图。

在您的情况下,您有一个尺寸为 1024x768 的图像,纵横比为 1.33854 (1024/768)。

这对应于使用您指定的宽度和高度值的 192x143 缩略图或 123x92 缩略图。

CI 决定 123x92 更合适(可能基于缩略图的区域)。

为什么是 123x98?可能是调整大小算法的一些工件(数学舍入错误?)。

需要查看 CI 代码详细信息以获得更准确的答案。

脚注
有一些关于 CI 中图像大小调整的讨论,模块中有一些怪癖:

[quote author="Saete" date="1346125636"]You will not beleive me, 
y had the same problem and y changed the order of configuration parameters 
with the maintain_ratio = true, and it worked :S
I needed to adjust to height:

Didn't work:
$config['width'] = 126;
$config['height'] = 84;
$config['maintain_ratio'] = TRUE;

Worked!
$config['height'] = 84;
$config['width'] = 126;
$config['maintain_ratio'] = TRUE;

Some years later, but it may help someone...[/quote]

显然,参数的顺序会有所不同(肯定是一个错误)。
参考:http ://ellislab.com/forums/viewthread/119169/#594586

于 2013-03-19T18:11:32.690 回答