图像调整大小Codeigniter

问题描述:

我使用CodeIgniter中的image_lib类来重新调整图像大小,它工作正常;这里是我的代码:图像调整大小Codeigniter

function resizeImage($source_image,$new_image,$width=100,$height=100){ 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $source_image; 
     $config['new_image'] = $new_image; 
     $config['maintain_ratio'] = TRUE; 
     $config['width'] = $width; 
     $config['height'] = $height; 
     $this->image_lib->initialize($config); 

     if($this->image_lib->resize()) return true; 
     else return false; 
} 

但是,我试图实现,无论它是什么形象,风景或肖像。大小。裁剪图像以设定尺寸。

目前,它们以这种方式裁切后,图像以不同尺寸的大拇指出现,主要是以风景或肖像为主。而如果你进入一个网站,如this,你会看到所有的拇指都是完全相同的比例,宽度和高度。

我该如何做到这一点?

干杯。

编辑

优秀教程做的正是这一点,可以在这里找到:

CodeIgniter.tv


我试图作物和按比例缩放的拇指CI,如下所示:

好的,那么你可以先将图像裁剪成方形图像,然后将 调整大小。看看这里:*.com/a/3327424/844726 - swatkins 6月26日在13:33

function resizeImg(){ 
    $source_image = base_url().'pic2.jpg'; 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = $source_image; 
    $config['new_image'] = $new_image; 
    $config['maintain_ratio'] = TRUE; 
    $config['x_axis'] = '10'; 
    $config['y_axis'] = '10'; 
    $config['width'] = $width; 
    $config['height'] = $height; 
    $this->image_lib->initialize($config); 
} 

当我像这样运行脚本:

http://localhost/test/index.php/cronJobs/resizeImg 

我得到一个服务器错误,我猜脚本没有执行。

+0

那么,一种方法是只给系统提供相同比例的图像。在调整大小之前,您可以通过做一些裁剪来自动执行此操作,但裁剪区域绝不可能是理想的裁剪区域。这就是为什么像Facebook这样的网站提供裁剪对话框的原因。 [JCrop](http://deepliquid.com/content/Jcrop.html)可以帮助你做到这一点,但实现起来要比简单的调整大得多。 –

+1

我最好使用这个:http://net.tutsplus.com/tutorials/php/image-resizing-made-easy-with-php/为所有图像调整我的大小,而不是使用CI类? – thejoker

您的问题是$config['maintain_ratio'] = TRUE;声明。这告诉系统将宽高比例保持为与新宽度或高度的比率(基于哪个是较大值)。

因此,如果图像是纵向,它将调整到100px高,但宽度将与原始图像比例成比例。

如果你想要的形象是100像素X 100像素,那么你需要设置:

$config['maintain_ratio'] = FALSE; 
+0

这种方法的问题,这将意味着图像将会失真,因为它只会将它们全部调整到100x100而没有正确裁剪它们,然后按比例调整比例 – thejoker

+0

好的,那么您可以先将图像裁剪成方形图像,然后调整。看看这里:http://*.com/a/3327424/844726 – swatkins

+0

好吧我想试试这个像这样 - 看到我的问题的其他答案如下: – thejoker

对于大型网站,如BBC,他们必须手工裁剪/调整图像本身,我想。 用CodeIgniter,我们可以设置这样的:

$config_resize['maintain_ratio'] = TRUE; 
$config_resize['master_dim'] = 'height'; 
$config_resize['quality'] = "100%"; 
$config_resize['source_image'] = './' . $user_upload_path . $file_name; 

$config_resize['height'] = 64; 
$config_resize['width'] = 1; 

固定拇指高度和保持高宽比,this post示出了用于调整例如和演示。