Codeigniter - 重新调整多个图像的尺寸,但尺寸错误?

时间:2012-06-25 14:09:26

标签: image codeigniter resize

我正在尝试将全尺寸图片海报调整为三个较小的文件变体。我先保存全尺寸海报,然后用它的路径来创建较小的海报。问题是尺寸不正确。我有一个包含所有图像的通用配置信息的$ conf数组,然后我为每个具有特定更改(例如大小)的图像设置了$ conf数组。我在每个新的init之前清除了lib。

// Config for all images
$conf['source_image'] = $file_path;
$conf['quality'] = 80;
$conf['maintain_ratio'] = true;
$conf['master_dim'] = 'auto';

// Small
$conf['new_image'] = 'img/movie_images/posters_small/' . $file_name;
$conf['height'] = 75;
//$conf['width'] = 55;

$this->image_lib->initialize($conf);
$this->image_lib->resize();
$this->image_lib->clear();
//unset($conf['width']);

// Medium
$conf['new_image'] = 'img/movie_images/posters_medium/' . $file_name;
$conf['height'] = 200;

$this->image_lib->initialize($conf);
$this->image_lib->resize();
$this->image_lib->clear();

// Big
$conf['new_image'] = 'img/movie_images/posters_big/' . $file_name;
$conf['height'] = 300;

$this->image_lib->initialize($conf);
$this->image_lib->resize();
$this->image_lib->clear();

查看代码中的任何错误?我尝试输出错误,就像有人在另一个问题中建议的那样,但是也没有显示任何内容。我不明白它是如何工作的。如果我将“master_dim”设置为auto,则第一个(小)图像得到正确的高度,但默认宽度(实际上非​​常宽)。如果我将master_dim设置为“width”,则小图像保持不变(非常宽,但高度正确)。如果我将master_dim设置为“height”,它们都会得到正确的高度,但小的仍然是超宽的。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

正如你在代码中看到的那样,我尝试使用小图像的宽度来获得正确的大小,但是没有让它工作。

将master_dim设置为高度,并手动设置小图像的宽度后,它可以按照我想要的方式工作。

答案 1 :(得分:0)

您可以从http://thephpcode.com/blog/codeigniter/gradient-image-library-for-codeigniter下载图片库,转换图片以适应正确的宽度和尺寸。