仅根据宽度调整图像大小&裁剪额外高度,Codeigniter

时间:2014-03-25 15:21:04

标签: php image codeigniter imagemagick gd2

我需要根据仅宽度调整图像大小,而不是高度:( 因为我正在使用** $config['maintain_ratio'] = TRUE; ** ,codeigniter自动解决它(这就是问题)有时我会得到一个黑色实体作为额外的宽度或高度,

  

我查看了与codegniter图像有关的所有问题   图书馆,我找不到与我的问题有关的任何事情:(

以下是对最终结果的描述...... I need to resize according to width only , not height :(

上传后有这个......

$this->load->library('md_image');
        $source='assets/img/hotellist/'.$data1['hotel_pictures'];
        $width=746;
        $height=400;
        $dest = FALSE;
        //$this->md_image->resize_image($source, $width, $height, $source);
            $config['image_library'] = 'gd2';//imagemagik
            $config['source_image'] = 'assets/img/hotellist/'.$data1['hotel_pictures'];
            //$config['image_library'] = 'imagemagick';
            //$config['library_path'] = '/usr/X11R6/bin/';
            $config['create_thumb'] = FALSE;
            $config['maintain_ratio'] = TRUE;
            $config['width']     = 746;
            $config['height']   = 400;
            $config['quality']   = 75;
            $config['encrypt_name'] = TRUE;
            $config['remove_spaces'] = TRUE;
            //$config['x_axis'] = 100;
            //$config['y_axis'] = 300;
            $img =$config['source_image'];
            //var_dump('check problem',$config['source_image']);

            $this->load->library('image_lib', $config);

            $this->image_lib->resize();

然后我会照顾裁剪部分

$new_img =$this->md_image->crop_to_ratio($source, $width, $height, $x = 17, $y = 9, $dest = FALSE);

总结一下,有人上传图片,根据宽度调整大小 Step 1 然后它被裁剪Step 2

PS:如果有人需要它md_image

2 个答案:

答案 0 :(得分:2)

$this->load->library('md_image');
        $source='assets/img/hotellist/'.$data1['hotel_pictures'];
        $width=746;
        $height=400;
        $size = getimagesize($source);
        $resize_height=($size[1]*746)/$size[0];
        $dest = FALSE;
        //$this->md_image->resize_image($source, $width, $height, $source);
            $config['image_library'] = 'gd2';//imagemagik
            $config['source_image'] = 'assets/img/hotellist/'.$data1['hotel_pictures'];
            //$config['image_library'] = 'imagemagick';
            //$config['library_path'] = '/usr/X11R6/bin/';
            $config['create_thumb'] = FALSE;
            $config['maintain_ratio'] = TRUE;
            $config['width']     = 746;
            $config['height']   = $resize_height;
            $config['quality']   = 75;
            $config['encrypt_name'] = TRUE;
            $config['remove_spaces'] = TRUE;
            //$config['x_axis'] = 100;
            //$config['y_axis'] = 300;
            $img =$config['source_image'];
            //var_dump('check problem',$config['source_image']);

            $this->load->library('image_lib', $config);

            $this->image_lib->resize();

答案 1 :(得分:1)

function resize_than_crop($path, $new_path, $width = 400, $height = 746) {

    $this->load->library('image_lib');

    $this->image_lib->initialize(array(
        'image_library' => 'gd2',
        'source_image' => $path,
        'new_image' => $new_path,
        'maintain_ratio' => true,
        'master_dim' => 'width',
        'width' => $width
    ));
    $this->image_lib->resize();

    $this->image_lib->clear();

    $this->image_lib->initialize(array(
        'image_library' => 'gd2',
        'source_image' => $new_path,
        'height' => $height
    ));
    $this->image_lib->crop();
}