2016-08-10 55 views
1

我正在使用guillotine JS來操作用戶想要上傳的圖像,這個JS庫給了我這json: {"scale":1.4212, "angle":90, "x":83, "y":196, "w":400, "h":300},與這json,我可以告訴codigniter我希望最終的圖像被存儲.. 。 在側笨我用這個...
Codeigniter錯誤旋轉

$resd = array(); 

$config['image_library'] = 'imagemagick'; 
$config['library_path'] = '/usr/local/bin/convert'; 
$config['source_image'] = $img; 
$config['create_thumb'] = FALSE; 
$config['rotation_angle'] = 90; 
$this->load->library('image_lib'); 
$this->image_lib->initialize($config); 
$this->image_lib->rotate(); 

if (!$this->image_lib->rotate()){ 
    $resd['rotation'] = $this->image_lib->display_errors(); 
} else { 
    $resd['rotation'] = 'Rotation pass'; 
} 

我的問題是,它並不重要rotation_angle了,它總是將圖像旋轉到180,這是第一步,之後旋轉完成後,我需要裁剪圖像... 任何幫助將不勝感激。

UPDATE

所以,旋轉得到固定後,未裁剪不想上班...... 的想法很簡單,首先將圖像旋轉如果有的話,然後裁剪圖像,作物我用這個吧我的第一個代碼後的圖像...

$config['image_library'] = 'imagemagick'; 
$config['library_path'] = '/usr/local/bin/convert'; 
$config['source_image'] = $img; 
$config['create_thumb'] = FALSE; 
$config['maintain_ratio'] = TRUE; 
$config['x_axis'] = $xo; 
$config['y_axis'] = $yo; 
//$this->load->library('image_lib'); 
$this->image_lib->initialize($config); 
$this->image_lib->crop();  
if (!$this->image_lib->crop()){ 
    $ms['cropper'] = $this->image_lib->display_errors(); 
} else { 
    $ms['cropper'] = 'Cropping done correctly'; 
}  
$this->image_lib->clear(); 
$config = array(); 

$xo$yo是整數,如1和2,因此,裁剪不工作,它正確地旋轉圖像,但不裁剪它...

更新2 2016年8月16日下午10:30

那麼,與CI玩耍後,它的庫,這是非常有用的唯一的事情就是旋轉,我最終使用Imagick使裁剪部分.. !

$imagick = new \Imagick(realpath($img)); 
$imagick->cropImage($wo, $ho, $xo, $yo); 
if(!$imagick->writeImage($img)){ 
    $ms['cropper'] = 'Didn\'t worked'; 
} else { 
    $ms['cropper'] = 'Now we can dance!'; 
} 

這奏效了......

+0

刪除'$這個 - > image_lib->旋轉();'線。 – Tpojka

+0

檢查roytuts.com/upload-and-rotate-image-using-codeigniter/和roytuts.com/upload-and-rotate-image-using-codeigniter/ – user3470953

+0

@Tpojka謝謝你,那固定的旋轉,但現在沒有裁剪圖像,旋轉後我重置我'$ config' var用'$ this-> image_lib-clear();'和'$ config = array();'然後我設置了裁剪的配置,但它沒有做它...'$ config ['x_axis'] = $ x; $ config ['y_axis'] = $ y; $這 - >負載>庫( 'image_lib'); $ this-> image_lib-> initialize($ config);'那裏沒有運氣。再次感謝。 – Tanker

回答

0

你試過這樣:加入270,而不是90! 換句話說,您的角度必須從360分割,因此它將是360 - json角度

指定旋轉圖像時的旋轉角度。需要注意的是PHP逆時針旋轉,所以90度旋轉的權利必須被指定爲270

有5個旋轉選項:

90 - rotates counter-clockwise by 90 degrees. 
180 - rotates counter-clockwise by 180 degrees. 
270 - rotates counter-clockwise by 270 degrees. 
hor - flips the image horizontally. 
vrt - flips the image 
+0

一樣,因爲它是真實的,這並不適用於這種情況,我已經使用EXIF得到它最初的定位,我甚至硬編碼的方向,我有嘗試所有可能的組合,沒有運氣,它不斷旋轉圖像180不管我做什麼。 – Tanker