2010-07-24 6 views
3

저는 codeigniter를 사용하여 프로젝트를 작성하고 있습니다. 지금은 사용자 선택에 따라 엄지 손가락을 만들어야합니다. 그는 저에게 X1, Y1, X2, Y2, X3, Y3, X4, Y4를 줄 것처럼 4 점에 따라 이미지를 자르고 싶습니다. 이미지 조작 클래스를 확인했습니다. 작물 기능이 매우 이상한 것 같습니다. 어떤 도움을 주시겠습니까?codeigniter에서 이미지를 자르는 방법?

+0

http://stackoverflow.com/questions/2436378/codeigniter-crop-without-maintain-ration –

+0

@ 페카 .. 만약 내가 그림을 자르고 싶다면 P1 = (100,100) P2 = (100,200) P3 = (200,100) P4 = (200,200) – trrrrrrm

+0

저는 CI의 이미지 편집 기능에 익숙하지 않습니다. –

답변

4

이미지 라이브러리의 특정 기능에 관한 문서가 희박하다는 것을 알고 있습니다. 자르기 함수는 축에만 공급하도록 요청합니다. 그런 다음이 축을 따라 자르고 중심에 가까운 이미지 부분을 반환합니다. 따라서 x 축을 10으로 설정하고 y 축을 10으로 설정하면 이미지의 상단 10 픽셀과 이미지의 왼쪽 10 픽셀이 제거됩니다. 마찬가지로 x 축을 이미지 너비 - 10으로 설정하면 이미지 오른쪽에서 10 픽셀 자릅니다.

4 가지 위치에서 실제로 네 가지 축이 무엇인지 알려줍니다. 따라서 두 가지 작업을 수행해야합니다. 각 $ this-> image_lib-> crop() 사이에서 축을 변경하기 만하면됩니다.

이러한 축을 파악하는 방법은 데이터를받는 방법에 따라 다릅니다. 배열에서 별도의 값 등으로 그래서 나는이 들어 가지 않습니다.

+0

나는 이것이 지금 늙었다는 것을 알고있다. 그러나 이것은 정말로 나를 도왔다. 고맙습니다 @Calle –

13

x 축 (왼쪽), 너비 (오른쪽), y 축 (상단) 및 높이 (하단)를 설정해야합니다. 이미지의 너비와 높이를 설정해야합니다.

 list($width, $height, $type, $attr) = getimagesize($img); 

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

     $config['image_library'] = 'gd2'; 
     $config['source_image'] = $img; 
     $config['x_axis'] = '10'; 
     $config['y_axis'] = '10'; 
     $config['maintain_ratio'] = FALSE; 
     $config['width'] = $width-10; 
     $config['height'] = $height-10; 

위의 코드는 이미지를 왼쪽, 오른쪽, 위쪽 및 아래쪽으로 10 픽셀 자릅니다. '10'의 값을 원하는 값으로 자유롭게 변경할 수 있습니다.)

+0

코드 제공을 위해 +1 –

+0

이것은 정말 좋은 예입니다. – Andrew

1

gd2 라이브러리로 어떤 결과도 얻지 못하고 있습니다. 이미지는 항상 크기가 조정되지만 새로운 작물은 크기가 조정됩니다.

그래서 여기 imagemagick가있는 솔루션이며 잘 작동합니다.

public function resize_prep($path, $file){ 
     $config['image_library'] = 'imagemagick'; 
     $config['library_path'] = '/usr/bin'; 
     $config['source_image'] = $path; 
     $config['create_thumb'] = TRUE; 
     $config['maintain_ratio'] = FALSE; 
     $config['x_axis'] = 300; 
     $config['y_axis'] = 300; 
     //$config['width'] = 650; 
     //$config['height'] = 353;  
     $config['new_image'] = './uploads/'.$file; 

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

     $this->image_lib->initialize($config); 
     if (!$this->image_lib->crop()){ 
      echo $this->image_lib->display_errors(); 
     } 
    } 
관련 문제