2011-11-21 4 views
1

과거에 미리보기 이미지에 대한 질문을했지만 정확한 답변을 찾을 수없는 것 같습니다.미리보기 이미지 만들기

하나의 ImageField와 관련된 ModelForm이있는 모델이 있습니다. 이 양식을 제출할 때이 이미지에 대해 여러 개의 축소판을 만들려고합니다 (고유 한 이름을 부여하여 나중에 템플릿에서 호출 할 수 있음) 원본을 저장하고 싶습니다. 어떻게해야합니까?

필자는 PIL을 사용 중이며 일부 맞춤 이미지 조작을 수행 할 것이므로 단순히 미리보기 이미지를 만드는 라이브러리를 사용하는 것이 적합하지 않습니다.

+0

sorl 및 easy_thumbnail에 대한 제안을 보내 주셔서 감사합니다. 그러나 너무 많은 마법이 저의 의견으로는 이해가되지 않습니다. 나는이 모든 일을 직접하고 싶다. 그것에 관한 어떤 조언? –

+0

그런 다음 easy_thumbnails를 건너 뛰고 Pil과 Celery를 직접 사용하십시오. Celery가 너무 마술적인 것이라면 저장 방법으로 이미지를 처리하거나 post_save 신호를 사용해야합니다. – arie

답변

2

당신은 미리 만들 easy-thumbnail's low level API을 사용할 수 easy-thumbnails 일부 이미지 프로세서와 함께 제공 는 내장을하지만, 당신은 또한 당신이 필요로하는 PIL 작업을 custom procressors를 추가하고 포장 할 수 있습니다 .

backgound에서 여러 이미지를 처리하려면 celery과 같은 작업 대기열을 사용해야합니다.

2

이 같은 템플릿에 미리 를 생성하는 sorl.thumbnail를 사용할 수 있습니다

{% thumbnail item.image "100x100" crop="center" as im %} 
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> 
{% endthumbnail %} 

그것은 여러 가지 방법으로 on save을 생성하는 것보다 낫다 : 새 서버로 이동할 수 있습니다

  • 축소판을 이동하지 않고도 (sorl.thumbnail이 재생성합니다)
  • 축소판 크기를 쉽게 변경할 수 있습니다 (템플릿의 매개 변수 만 변경하면 마술처럼 그것은 (당신이 즉, 다른 템플릿에서 다른 크기 (수
  • ) 템플릿에 있어야 할 곳에
  • 썸네일의 크기가 저장) 발생. 등 모바일 템플릿)

http://thumbnail.sorl.net/

관련 문제