thumbnail_utils make_thumb

Brightcells %!s(int64=9) %!d(string=hace) años
padre
commit
ce10db91f9
Se han modificado 3 ficheros con 27 adiciones y 0 borrados
  1. 7 0
      group/views.py
  2. 3 0
      pai2/settings.py
  3. 17 0
      utils/thumbnail_utils.py

+ 7 - 0
group/views.py

@@ -1,5 +1,6 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
+from django.conf import settings
3 4
 from django.core.files.storage import default_storage
4 5
 from django.db import transaction
5 6
 from django.http import JsonResponse
@@ -10,6 +11,7 @@ from account.models import UserInfo
10 11
 from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo
11 12
 from group.serializers import GroupInfoSerializer, GroupUserInfoSerializer, GroupPhotoInfoSerializer
12 13
 
14
+from utils.thumbnail_utils import make_thumb
13 15
 from utils.ip_utils import ip_addr
14 16
 
15 17
 from curtail_uuid import CurtailUUID
@@ -424,6 +426,11 @@ def flyimg_upload_api(request):
424 426
             default_storage.delete(photo_thumbnail_path)
425 427
         default_storage.save(photo_thumbnail_path, photo)
426 428
 
429
+        make_thumb(
430
+            os.path.join(settings.MEDIA_ROOT, photo_thumbnail_path).replace('\\', '/'),
431
+            settings.THUMBNAIL_MAX_WIDTH
432
+        )
433
+
427 434
         group_photo = GroupPhotoInfo.objects.create(
428 435
             group_id=group_id,
429 436
             user_id=user_id,

+ 3 - 0
pai2/settings.py

@@ -154,6 +154,9 @@ CURTAIL_UUID_LENGTH = 7
154 154
 # 水印设置
155 155
 WATERMARK_LOGO = os.path.join(PROJ_DIR, 'static/pai2/img/paiai_96_96.png').replace('\\', '/')
156 156
 
157
+# 缩略图设置
158
+THUMBNAIL_MAX_WIDTH = 360
159
+
157 160
 # 域名设置
158 161
 DOMAIN = 'http://xfoto.com.cn'
159 162
 IMG_DOMAIN = 'http://img.xfoto.com.cn'

+ 17 - 0
utils/thumbnail_utils.py

@@ -0,0 +1,17 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+try:
6
+    from PIL import Image
7
+except ImportError:
8
+    import Image
9
+
10
+
11
+def make_thumb(im_path, max_width=360):
12
+    im = Image.open(im_path)
13
+    width, height = im.size
14
+    thumb_width = min(max_width, width)
15
+    thumb_height = height / width * thumb_width
16
+    im.thumbnail((thumb_width, thumb_height))
17
+    im.save(im_path, im.format or 'JPEG')