2013-03-10 2 views
0

업로드 된 이미지의 크기가 3000x5000 픽셀 범위 이내 인 ci를 사용하여 갤러리를 만들었습니다. 그들을 표시하고 축소판을 자르지 않았으므로 필요시 크기를 어떻게 바꿀 수 있습니까? 150x150으로 목록 크기를 다시 지정하고 싶습니다. 어떻게해야합니까? 즉시 이미지 크기 조정

내가는 각 이미지를 전체 설정 정보를 지정 나를 원하는 라이브러리를로드 할 때 http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html

문제는 가이드를 따라 갔다. 그래서 내가보기에 표시하는 컨트롤러에 변수를로드 말을하고로드 할 때 다음과 같이 보일 것이다 :

foreach($gallery as $img) 
{ 
    echo "<div>"; 
    echo "<img src='" . $this->img_lib->resize($img->imagepath, 150, 150) . "'>"; 
    echo "</div>"; 

} 

PS : 그것의 크기를 조정할 때 이미지가 저장됩니다입니까? 왜냐하면 나는 그걸 원하지 않아.

더 나은 솔루션 : http://www.matmoo.com/digital-dribble/codeigniter/image_moo/

+0

아무도 모른다. .. –

답변

0

나는 CI 외부에서 작업을 수행하는 방법을 알고있다. 본질적으로 img "src"는 PHP 스크립트와 같거나 htaccess에 의해 차단되어 PHP 스크립트로 리디렉션되어야합니다. 이 단지가 아닌 파일 이름을 전달하는 더 나은 것 imageResize.php

$path = $_REQUEST['path']; 
$this->img_lib->resize($path, 150, 150); 

사이트의 폴더 구조에 따라 :

foreach($gallery as $img) 
{ 
    echo "<div>"; 
    echo "<img src='/imageResize.php?path=" . $img->imagepath . "'>"; 
    echo "</div>"; 

} 

파일 :

이 뭔가를 시도 할 수 전체 경로. .htaccess (CMS에서 수행)를 사용하여 이미지를 가로 채고 즉시 크기를 조정하거나 자르기가 더 좋습니다. 예 : <img src="/path/to/image.jpg?w=150&h=150" />

어떤 방향을 제시하는 데 도움이됩니까?

실제 파일은 사용자가 지정하지 않으면 서버에 저장되지 않습니다.

+0

와우 당신의 방법은 심지어 내 마음을 교차하지 않았다. 그것보다 나은 해결책은 내가 그것을 어떻게하는 지 알아낼 때까지. 감사 ! –

0

@SaRiD의 대답은 올바른 방향입니다. 그러나 반드시 CI 외부에있을 필요는 없습니다. 이미지 소스는 크기 조정을 처리하고 이미지를 제공하는 컨트롤러 메소드를 가리킬 수 있습니다.

또한이 메서드 내에서 브라우저에 이미지 리소스를 식별하려면 올바른 headers을 사용해야합니다.

축소판을 저장하지 않기를 원합니다. 이것은 분명히 응용 프로그램의 필요성에 달려 있습니다. 매번 미리보기를 만들고 제공하는 대신 이전에 잘라내어 저장 한 축소판을 브라우저에 제공하는 방식으로 (이전 요청에서) 브라우저를 제공하는 방식으로 설정할 수 있습니다. 이렇게하면 일부 CPU주기가 절약됩니다.