2009-09-27 5 views
1

내 사이트 사용자는 아바타로 사용되는 이미지를 업로드합니다. 업로드 제한 크기를 2MB로 설정했습니다. 대부분의 장소에서 미리보기 이미지 만 필요합니다. 그러나 사용자는 훨씬 더 높은 해상도로 이미지를 업로드합니다. 나는이 파일들을 내 파일 시스템에 저장한다.사용자 아바타의 크기 줄이기? - 미리보기 이미지 생성

썸네일을 만들고 큰 파일 대신 저장할 수 있습니까?

답변

3

설치/서버 설정에 따라 몇 가지 가능성이 있습니다.

내가 아주 GD없이 서버가 설치 본 적이 있다고 말할 것 - Imagick을 위해, 그


또 다른 해결책 :-(기본적으로 설치하기 어려운이를 호출 할 수 있습니다 convert 명령 줄 유틸리티 (가 ImageMagick를 함께 제공 - 독립적으로 어떤 PHP 확장의)., 그것을 호출 exec 같은 것을 사용

장점, 즉, 당신이 memory_limit에 의해 제한되지 않을 것이라는 것, 크기 조정으로 uld는 외부 도구로 수행 할 수 있지만 물론 응용 프로그램이 외부 도구에 의존한다는 것을 의미하기도합니다.


필요한 경우 많은 자습서가 있습니다. GD; 예를 들어, 사람들은 당신에게 관심 있습니다

  • How to create thumbnails with PHP and gd을 : 그것은 많은 이미지 썸네일을 생성하는 일괄 처리 사용 - 당신은 이미
  • Thumbnail generation with PHP tutorial이있는 모든 이미지의 썸네일을 생성해야하는 경우 유용 할 수 있습니다 : 정사각형 축소판을 만들거나, orignal 이미지를 가운데에 배치하고 배경색을 추가하여 자주 보지 않는 물건을 만듭니다. GD 라이브러리
0

PHP 설정에 Imagick이 설치되어있는 경우. 그런 다음이 작업을 수행하는 기능이 있습니다. Imagick::thumbnailImage()

Imagick이 없다면 GD 라이브러리가 유용 할 것입니다. 그들이 가지고 있기 때문에 imagcopyresized()

3

당신은 GD module 또는 ImageMagick module 크기를 조정하는 데 사용하고 이미지를 업로드 축소 할 수 있습니다.

"PHP 이미지 리사이저"와 같은 것으로 Google을 둘러 보면 많은 예제가 있습니다. GD를 사용하는 경향이 있습니다. 오래된 코드를 사용하여 잘 작동합니다.적절한

list($width, $height, $type) = getimagesize($srcImgPath); 
$srcImg = imagecreatefromjpeg($srcImgPath); 
if ($srcImg === false) return false; 
$workImg = imagecreatetruecolor($newWidth,$newHeight); 
imagecopyresampled($workImg,$srcImg,0,0,0,0,$newWidth,$newHeight,$width,$height); 
imagejpeg($workImg,$newFilename,$quality); 

기능화하고를 지정해야합니다 : 당신이 $srcImgPath에서 발견 알려진 업로드 된 JPEG 이미지를 가지고 가정하면, 다음, $newWidth$newHeight이 어디에 이미지의 새로운 크기는 당신이 원하는처럼 뭔가를 할 수 $quality. 이 코드를 추상화하여 gif와 png를 매우 쉽게 처리 할 수 ​​있습니다.

0

Google AppEngine에 PIL의 하위 집합이 설치되어 있지 않습니까? 거기에 사용할 수있는 '크기 조정'기능이 있습니다 ... 그리고 무엇보다도, 당신은 무료 할당량을 받고 있습니다!

+1

하지만 Google AppEngine을 사용하지 않습니다. –

+0

그것은 단지 제안이었습니다 ... 무료주기는 항상 멋지지만, 아니오? – jldupont

1

나는 timthumb.php 스크립트를 권 해드립니다 것이다. 그것은 단단한 바위 다. http://www.darrenhoyt.com/2008/04/02/timthumb-php-script-released/

+0

심각한 보안 결함이 포함되어 있습니다. http://markmaunder.com/2011/08/01/zero-day-vulnerability-in-many-wordpress-themes/하지만 http : //에서 가장 최근의 오류가 있는지 확인하십시오. code.google.com/p/timthumb/ – Kurt