2010-05-27 1 views
1

PHP에서 GD 라이브러리를 사용하여 여러 축소판을 만들고 싶습니다. 이미이 스크립트를 사용하고 있습니다. 문제는 내게 더 낫다는 것입니다. 즉석에서 미리보기 이미지를 만드는 것이 더 낫습니까? 또는 엄지를 원할 때마다 내 서버에 실제 파일을 만드시겠습니까 ?? ?? 그리고 왜?PHP로 GD 라이브러리를 사용하여 여러 개의 미리보기 이미지를 생성하고 싶습니다. 즉, 즉시 작성하거나 실제 이미지를 만드는 것이 더 낫습니다.

는 GD 작업의 결과를 모두

답변

1

둘 중 하나 또는 둘 모두 - 원하는 때까지 미리보기 이미지를 생성하지 말고 생성 한 파일은 보관하십시오.

축소판 만들 때 C.

+0

빠른 답장을 보내 주신 Oli, Emil, Pekka 및 symcbean에게 감사드립니다. 자세한 답장은 앞으로 업로드 할 사진을 관리하는 동안 나에게 고려 될 다른 많은 문제를 열어 둡니다. 지금은 언급 한 symcbean으로 필요할 때 엄지 손가락을 만드는 것이 더 좋습니다. –

0

항상 캐시에 시간과 저장 용량 및 기타 단점을 고려 (= 디스크에 쓰기)하십시오. 그들은 프로세서 시간과 메모리를 매시간 비행 할 때 너무 비싸다. 당신이 가진 방문자/방문수가 증가할수록 이것이 점점 더 사실이됩니다.

1

GD는 실제로 리소스가 무거 우므로 대신 ImageMagick (더 명확한 구문이 있음)을 사용할 수 있는지 살펴 봐야합니다.

처음 실행 한 후에 (GD 또는 ImageMagick을 실행하는 경우와 상관없이) 만든 미리보기 이미지를 캐싱하는 것이 좋습니다. 캐시에서 제공하십시오. 저장소에 대해 걱정할 경우 캐시에서 오래된 파일을 지운 다음 지 웁니다.

+0

ImageMagick도 리소스가 많지만 GD는 더 많은 메모리를 사용합니다. – Jacco

3

을 필요한 작업의 양을 최소화하고 자체 복구 시스템

있을 것이다 그런 식으로 내가 들어갈거야 요소의 몇 가지 (에 따라 달라집니다)하지만 정말 비싼 작업이기 때문에 결코 이런 것을 출력하지 않아야합니다 (다시 사용하지 않는 한).

은 어쨌든 "썸네일을 생성하는 때"에 대한 두 가지 선택 사항은 다음과 같습니다

  1. 가 처음 요청 때. 이것은 일반적으로 사용되지 않는 썸네일을 생성하지 않는다는 것을 의미하지만 서버가 썸네일을 생성하는 PHP 프로세스로 인해 압도 당할 수있는 최초의 썸네일로 가득 찬 페이지가있는 경우를 의미합니다.

    Sorl + Django와 비슷한 문제가있어서 업로드 후 첫 번째 요청에 대해 요청 당 100 개 이상의 미리보기 이미지가 생성되었으며 기본적으로 전체 서버가 20 분 동안 중단되었습니다. 안좋다.

  2. 업로드 할 때 필요한 모든 미리보기 이미지를 생성하십시오. 업로드하는 데 시간이 오래 걸리므로 처리 작업이 상당히 어려워집니다. 또한 out-of-process로 가져올 수도 있습니다 (즉, 다른 스크립트를 사용하여 업로드를 처리 할 수 ​​있습니다 - 아마도 PHP에서도 그렇지 않습니다).

    명백한 단점은 사용하지 않을 수도있는 디스크 공간을 사용하고 있다는 것입니다. 그러나 수십만 개의 미리보기 이미지에 대해 언급하지 않는 한 사용하지 않은 것의 작은 비율은 은행을 해산 시키십시오.

    물론 디스크 공간이 문제가되면 처리하는 것과 동시에 썸네일을 CDN까지 밀어 넣기위한 인수가있을 수 있습니다. 당신은 작은 이미지를 저장

한 노트는, 당신이 어떤 점 선 아래로 혹은 두 개의 작은 변형을 원하는에서 썸네일 크기를 조정하려는거야 매우 ​​일반적입니다.파일 이름을 매우 구체적으로 지정하면 원본 이미지가 image.jpg이고 200x200 버전이 image-200x200.jpg 인 경우 매우 유용합니다.

+0

+1 가장 포괄적 인 대답을 위해 엄지 손가락을 내리는 옵션으로 CDN을 언급합니다. – wimvds

관련 문제