2017-01-01 15 views
1

私のウェブページにいくつかの画像をアップロードしていて、そのサムネイルを中央から四角に切り取りたいと思っています。私はCodeigniterとgd2を使用しています。Codeigniterでサムネイル画像を四角で切り抜く

$config['image_library'] = 'gd2'; 
        $config['source_image'] = $this->userlibrary->picturesdir . $newfilename; 
$config['new_image'] = $this->userlibrary->thumbsdir; 
$config['create_thumb'] = TRUE; 
$config['maintain_ratio'] = TRUE; 
$config['width']= 150; 
$config['height']= 150; 

画像がきれいにスケーリングされますが、彼らは150に設定されます彼らのアスペクト比とだけその幅や高さを維持し、彼らがトリミングされていません。

はここで、これまでに私のコードです。 maintain_ratioを設定しても、イメージは切り抜かれずに斜めになります。

どうすればいいですか?

+0

を参照してください。http://stackoverflow.com/questions/28002244/crop-resize-image-function-using-gd-library/28008400# 28008400 – Rasclatt

+0

元のイメージを四角形に切り取り、サイズを変更することができます。 – ourmandave

答えて

0
//Set config for img library 
$config['image_library'] = 'ImageMagick'; 
$config['library_path'] = '/usr/bin/'; 
$config['source_image'] = $filePath . $fileOldName; 
$config['maintain_ratio'] = false; 

//Set cropping for y or x axis, depending on image orientation 
if ($fileData['image_width'] > $fileData['image_height']) { 
    $config['width'] = $fileData['image_height']; 
    $config['height'] = $fileData['image_height']; 
    $config['x_axis'] = (($fileData['image_width']/2) - ($config['width']/2)); 
} 
else { 
    $config['height'] = $fileData['image_width']; 
    $config['width'] = $fileData['image_width']; 
    $config['y_axis'] = (($fileData['image_height']/2) - ($config['height']/2)); 
} 

//Load image library and crop 
$this->load->library('image_lib', $config); 
$this->image_lib->initialize($config); 
if ($this->image_lib->crop()) { 
    $error = $this->image_lib->display_errors(); 
} 

//Clear image library settings so we can do some more image 
//manipulations if we have to 
$this->image_lib->clear(); 
unset($config); 

出典:これは何が必要であれば https://forum.codeigniter.com/thread-7286.html

関連する問題