2009-07-02 2 views
0

사용자가 내 사이트에서 자신의 프로필 사진을 업로드하도록합니다. 이러한 이미지는 모든 형식과 크기로 제공됩니다. 이 프로필 사진을 표시 할 때 왜곡되지 않고 균일 한 픽셀 크기가되기를 원합니다.사용자가 업로드 한 아바타를 균일하게 비율 조정/자르기/형식 지정

사용자가 이미지를 업로드 할 때 바로 자르도록해야합니까?

임의의 이미지가 주어지면 이미지를 왜곡시키지 않으면 서 특정 픽셀 높이/너비 아래에 있도록 어떻게 축소 할 수 있습니까?

답변

1

:

  • sorl.thumbnail : (관리자에 편리합니다) 간단한 충분히 인터페이스와 당신을 위해 태그를 만든다. 이미지 크기와 스펙이 모델 속성에 정의되어 코드가 어수선 해지고 디자인과 데이터의 분리가 혼란 스럽다.
  • Photologue : 이미지 크기는 관리자에게 정의되고 데이터베이스에 저장됩니다. 유용합니다. 갤러리에 zip 파일을 업로드하십시오. 좋은 물건 많이. 아마 당신이 필요 이상으로.
  • ImageKit : 다음 버전의 Photologue가이 위에 구축되고 있습니다. 그것은 하위 레벨이며, 스펙 파일에서 이미지 스펙 (크기 및 프로세서)을 정의합니다. 그것은 필요한 것 이상을하지는 않지만 충분히하는 것처럼 보입니다.

내가 말했듯이, 나는 서로 다른 프로젝트 (나열된 순서대로, 우연히)로 사용했습니다. 당신이하고있는 것처럼 들리는데, 나는 Sorl이나 ImageKit과 함께 할 것입니다.

+0

멋진 정보를 제공해 주셔서 감사합니다! – MikeN

+0

@MikeN 어떤 앱으로 문제를 해결 했습니까? –

3

나는 PythonMagick이 작업을 수행 할 것이라고 생각합니다. ImageMagick

특정 종횡비를 고집한다면 사용자가 프로필 사진에서 올바른 종횡비의 영역을 선택하게 할 수 있습니다. 예를 들어 Twitter 프로필 사진은 정사각형 (48x48 픽셀)입니다. 사용자가 올바른 종횡비의 영역을 선택하도록하지 않으면 크기를 축소 할 때 이미지가 부각됩니다.

보안 정보 : 악의적 인 사용자가 보안 구멍으로 이어질 수있는 다양한 이미지 파일 유형에 정보를 포함시킬 수 있으므로 항상 미리보기 이미지 프로그램을 통해 사용자 업로드 이미지를 실행하는 것이 좋습니다. 지난 몇 년 동안 이러한 일련의 발견이있었습니다. 더 많은 것이있을 것으로 기대하는 것이 합리적입니다. 또 다른 좋은 방법은 신뢰할 수없는 도메인의 사용자 제공 콘텐츠를 제공하여 사용자가 업로드 한 악성 코드가 응용 프로그램의 쿠키를 훔칠 수 없도록하는 것입니다.

2

축소판을 자동으로 생성하고 캐시하는 태그를 제공하는 Django-Sorl을 사용하면 크기 조정 및 스마트 자르기와 같은 다양한 크기로 축소판을 저장할 수 있습니다. 이것을 사용하여 파일과 미리보기 이미지를 로컬 S3 마운트에 놓고 사용자가 S3에서 가져올 수있는 모든 축소판을 자동으로 배치합니다.

+0

+1. sorl-thumbnail은 환상적인 앱입니다. 제가하는 모든 Django 프로젝트에 적용됩니다. –

1

플래시가 옵션 인 경우 FlashReplay 클래스를 사용하여 이미지를 플래시 무비로 읽고 이미지를 자르고 크기를 조정 한 다음 이미지를 원하는 이미지 형식으로 인코딩 할 수 있습니다 (PNG 용 인코더가 일부 있음). 및 JPEG는 AS3 corelib package에 있음) 서버에 업로드하십시오.

참고 :이 만 django-avatar 프로젝트를 사용하지 왜 http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/

5

체크 아웃 더 많은 정보 10

플래시에서 할 수 있는가?

그들은 처음으로 이미지를 표시하기 전에 이미지의 크기를 조정하는 태그가있는 아주 깨끗한 해결책을 가지고 있습니다. 원본 이미지를 저장하고 웹 사이트에서 허용하는 이미지 크기를 정의하면 나머지는 자동으로 수행됩니다.

Filmaster에서 아바타도 캐시합니다. 템플릿 태그 코드는 https://musielak.eu/public/film20/film20/userprofile/templatetags/avatars.py (user : justlookingaround, pass : film @ ster)에서 확인할 수 있습니다. 나는이 일을 몇 가지 다른 응용 프로그램을 사용했습니다

1

... 플래시 ?? 연못을 건너기 위해 산 주위를 산책하는 것에 대해 이야기하십시오.

파이썬에는 이미징 라이브러리 PIL이 있습니다. 직접 다운로드해야하지만 django-avatar와 같은 앱이 당신을 위해 여분의 것들을 돌보고 싶어하지 않는다면, 그것보다 훨씬 간단하지는 않습니다.

http://effbot.org/imagingbook/image.htm

쉽지 것을 심각하게입니다! 이미지 유형을 변환하는 것조차 '저장'메소드에 대한 단일 문자열 인수만큼 쉽습니다.

+0

Flash를 사용하면 CPU로드가 업 로더로 푸시되지만 다른 모든 메소드는 서버를 사용한다는 점에 유의해야합니다. 아바타 사진을 위해 사용자로부터 11 메가 픽셀 이미지를 더 이상 직접 받아들이지 않으므로 대역폭을 상당히 절약 할 수 있습니다. 필요에 따라 다릅니다. 페이스 북은 자바 애플릿과 플래시를 사용하여 실제로 엄청나게 앞서왔다. –

+0

충분히 공정하지만 솔직히 말해서 아마추어 프로그래머에게 이미지 크기를 조정하는 방법을 묻는 가장 직접적인 대답은 아닙니다. 한 사람이 4 가지 언어로 능숙하게 프로그래밍 할 수있는 방법을 알기를 기대하는 것은 실용적이지 않습니다. 요즘 플래시는 보안 혐의와 관련하여 요즘엔 방탄이 아닙니다. 내가 묻는 질문에 대답하는 것을 고수하고 싶다. – Tim

관련 문제