ui green sha label" href="/tonglan/adminSystem/commit/11e3a9652a62b867d722e5aebdba895bb86f9ed3 ">11e3a9652a first 8 年之前 normalize-wheel 11e3a9652a first 8 年之前 npm-run-path 11e3a9652a first 8 年之前 npmlog 11e3a9652a first 8 年之前 nth-check 11e3a9652a first 8 年之前 num2fraction 11e3a9652a first 8 年之前 number-is-nan 11e3a9652a first 8 年之前 nwmatcher 11e3a9652a first 8 年之前 oauth-sign 11e3a9652a first 8 年之前 object-assign 11e3a9652a first 8 年之前 object-copy 11e3a9652a first 8 年之前 object-hash 11e3a9652a first 8 年之前 object-keys 11e3a9652a first 8 年之前 object-visit 11e3a9652a first 8 年之前 object.getownpropertydescriptors 11e3a9652a first 8 年之前 object.omit 11e3a9652a first 8 年之前 object.pick 11e3a9652a first 8 年之前 obuf 11e3a9652a first 8 年之前 on-finished 11e3a9652a first 8 年之前 on-headers 11e3a9652a first 8 年之前 once 11e3a9652a first 8 年之前 onetime 11e3a9652a first 8 年之前 opener 11e3a9652a first 8 年之前 opn 11e3a9652a first 8 年之前 optimist 11e3a9652a first 8 年之前 optimize-css-assets-webpack-plugin 11e3a9652a first 8 年之前 optionator 11e3a9652a first 8 年之前 ora 11e3a9652a first 8 年之前 original 11e3a9652a first 8 年之前 os-browserify 11e3a9652a first 8 年之前 os-homedir 11e3a9652a first 8 年之前 os-locale 11e3a9652a first 8 年之前 os-tmpdir 11e3a9652a first 8 年之前 osenv 11e3a9652a first 8 年之前 p-finally 11e3a9652a first 8 年之前 p-limit 11e3a9652a first 8 年之前 p-locate 11e3a9652a first 8 年之前 p-map 11e3a9652a first 8 年之前 p-try 11e3a9652a first 8 年之前 pac-proxy-agent 11e3a9652a first 8 年之前 pac-resolver 11e3a9652a first 8 年之前 pako 11e3a9652a first 8 年之前 parallel-transform 11e3a9652a first 8 年之前 param-case 11e3a9652a first 8 年之前 parse-asn1 11e3a9652a first 8 年之前 parse-glob 11e3a9652a first 8 年之前 parse-json 11e3a9652a first 8 年之前 parse5 11e3a9652a first 8 年之前 parseurl 11e3a9652a first 8 年之前 pascalcase 11e3a9652a first 8 年之前 path-browserify 11e3a9652a first 8 年之前 path-dirname 11e3a9652a first 8 年之前 path-exists 11e3a9652a first 8 年之前 path-is-absolute 11e3a9652a first 8 年之前 path-is-inside 11e3a9652a first 8 年之前 path-key 11e3a9652a first 8 年之前 path-parse 11e3a9652a first 8 年之前 path-to-regexp 11e3a9652a first 8 年之前 path-type 11e3a9652a first 8 年之前 pbkdf2 11e3a9652a first 8 年之前 pend 11e3a9652a first 8 年之前 performance-now 11e3a9652a first 8 年之前 pify 11e3a9652a first 8 年之前 pinkie 11e3a9652a first 8 年之前 pinkie-promise 11e3a9652a first 8 年之前 pkg-dir 11e3a9652a first 8 年之前 pluralize 11e3a9652a first 8 年之前 pn 11e3a9652a first 8 年之前 portfinder 11e3a9652a first 8 年之前 posix-character-classes 11e3a9652a first 8 年之前 postcss 11e3a9652a first 8 年之前 postcss-calc 11e3a9652a first 8 年之前 postcss-colormin 11e3a9652a first 8 年之前 postcss-convert-values 11e3a9652a first 8 年之前 postcss-discard-comments 11e3a9652a first 8 年之前 postcss-discard-duplicates 11e3a9652a first 8 年之前 postcss-discard-empty 11e3a9652a first 8 年之前 postcss-discard-overridden 11e3a9652a first 8 年之前 postcss-discard-unused 11e3a9652a first 8 年之前 postcss-filter-plugins 11e3a9652a first 8 年之前 postcss-import 11e3a9652a first 8 年之前 postcss-load-config 11e3a9652a first 8 年之前 postcss-load-options 11e3a9652a first 8 年之前 postcss-load-plugins 11e3a9652a first 8 年之前 postcss-loader 11e3a9652a first 8 年之前 postcss-merge-idents 11e3a9652a first 8 年之前 postcss-merge-longhand 11e3a9652a first 8 年之前 postcss-merge-rules 11e3a9652a first 8 年之前 postcss-message-helpers 11e3a9652a first 8 年之前 postcss-minify-font-values 11e3a9652a first 8 年之前 postcss-minify-gradients 11e3a9652a first 8 年之前 postcss-minify-params 11e3a9652a first 8 年之前 postcss-minify-selectors 11e3a9652a first 8 年之前 postcss-modules-extract-imports 11e3a9652a first 8 年之前 postcss-modules-local-by-default 11e3a9652a first 8 年之前 postcss-modules-scope 11e3a9652a first 8 年之前 postcss-modules-values 11e3a9652a first 8 年之前 postcss-normalize-charset 11e3a9652a first 8 年之前 postcss-normalize-url 11e3a9652a first 8 年之前 postcss-ordered-values 11e3a9652a first 8 年之前 postcss-reduce-idents 11e3a9652a first 8 年之前 postcss-reduce-initial 11e3a9652a first 8 年之前 postcss-reduce-transforms 11e3a9652a first 8 年之前 postcss-selector-parser 11e3a9652a first 8 年之前 postcss-svgo 11e3a9652a first 8 年之前 postcss-unique-selectors 11e3a9652a first 8 年之前 postcss-url 11e3a9652a first 8 年之前 postcss-value-parser 11e3a9652a first 8 年之前 postcss-zindex 11e3a9652a first 8 年之前 prelude-ls 11e3a9652a first 8 年之前 prepend-http 11e3a9652a first 8 年之前 preserve 11e3a9652a first 8 年之前 prettier 11e3a9652a first 8 年之前 pretty 11e3a9652a first 8 年之前 pretty-error 11e3a9652a first 8 年之前 pretty-format 11e3a9652a first 8 年之前 private 11e3a9652a first 8 年之前 process 11e3a9652a first 8 年之前 process-nextick-args 11e3a9652a first 8 年之前 progress 11e3a9652a first 8 年之前 promise-inflight 11e3a9652a first 8 年之前 proto-list 11e3a9652a first 8 年之前 proxy-addr 11e3a9652a first 8 年之前 proxy-agent 11e3a9652a first 8 年之前 prr 11e3a9652a first 8 年之前 pseudomap 11e3a9652a first 8 年之前 public-encrypt 11e3a9652a first 8 年之前 pump 11e3a9652a first 8 年之前 pumpify 11e3a9652a first 8 年之前 punycode 11e3a9652a first 8 年之前 q 11e3a9652a first 8 年之前 qrcodejs2 11e3a9652a first 8 年之前 qs 11e3a9652a first 8 年之前 query-string 11e3a9652a first 8 年之前 querystring 11e3a9652a first 8 年之前 querystring-es3 11e3a9652a first 8 年之前 querystringify 11e3a9652a first 8 年之前 randomatic 11e3a9652a first 8 年之前 randombytes 11e3a9652a first 8 年之前 randomfill 11e3a9652a first 8 年之前 range-parser 11e3a9652a first 8 年之前 raw-body 11e3a9652a first 8 年之前 read-cache 11e3a9652a first 8 年之前 read-pkg 11e3a9652a first 8 年之前 read-pkg-up 11e3a9652a first 8 年之前 readable-stream 11e3a9652a first 8 年之前 readdirp 11e3a9652a first 8 年之前 realpath-native 11e3a9652a first 8 年之前 rechoir 11e3a9652a first 8 年之前 redent 11e3a9652a first 8 年之前 reduce-css-calc 11e3a9652a first 8 年之前 reduce-function-call 11e3a9652a first 8 年之前 regenerate 11e3a9652a first 8 年之前 regenerator-runtime 11e3a9652a first 8 年之前 regenerator-transform 11e3a9652a first 8 年之前 regex-cache 11e3a9652a first 8 年之前 regex-not 11e3a9652a first 8 年之前 regexpp 11e3a9652a first 8 年之前 regexpu-core 11e3a9652a first 8 年之前 regjsgen 11e3a9652a first 8 年之前 regjsparser 11e3a9652a first 8 年之前 relateurl 11e3a9652a first 8 年之前 remove-trailing-separator 11e3a9652a first 8 年之前 renderkid 11e3a9652a first 8 年之前 repeat-element 11e3a9652a first 8 年之前 repeat-string 11e3a9652a first 8 年之前 repeating 11e3a9652a first 8 年之前 request 11e3a9652a first 8 年之前 request-promise-core 11e3a9652a first 8 年之前 request-promise-native 11e3a9652a first 8 年之前 require-directory 11e3a9652a first 8 年之前 require-from-string 11e3a9652a first 8 年之前 require-main-filename 11e3a9652a first 8 年之前 require-uncached 11e3a9652a first 8 年之前 requires-port 11e3a9652a first 8 年之前 resize-observer-polyfill 11e3a9652a first 8 年之前 resolve 11e3a9652a first 8 年之前 resolve-cwd 11e3a9652a first 8 年之前 resolve-from 11e3a9652a first 8 年之前 resolve-url 11e3a9652a first 8 年之前 restore-cursor 11e3a9652a first 8 年之前 ret 11e3a9652a first 8 年之前 right-align 11e3a9652a first 8 年之前 rimraf 11e3a9652a first 8 年之前 ripemd160 11e3a9652a first 8 年之前 run-async 11e3a9652a first 8 年之前 run-queue 11e3a9652a first 8 年之前 rx-lite 11e3a9652a first 8 年之前 rx-lite-aggregates 11e3a9652a first 8 年之前 safe-buffer 11e3a9652a first 8 年之前 safe-regex 11e3a9652a first 8 年之前 safer-buffer 11e3a9652a first 8 年之前 sane 11e3a9652a first 8 年之前 sass-graph 11e3a9652a first 8 年之前 sass-loader 11e3a9652a first 8 年之前 sax 11e3a9652a first 8 年之前 schema-utils 11e3a9652a first 8 年之前 scss-tokenizer 11e3a9652a first 8 年之前 select-hose 11e3a9652a first 8 年之前 selenium-server 11e3a9652a first 8 年之前 selfsigned 11e3a9652a first 8 年之前 semver 11e3a9652a first 8 年之前 send 11e3a9652a first 8 年之前 serialize-javascript 11e3a9652a first 8 年之前 serve-index 11e3a9652a first 8 年之前 serve-static 11e3a9652a first 8 年之前 set-blocking 11e3a9652a first 8 年之前 set-immediate-shim 11e3a9652a first 8 年之前 set-value 11e3a9652a first 8 年之前 setimmediate 11e3a9652a first 8 年之前 setprototypeof 11e3a9652a first 8 年之前 sha.js 11e3a9652a first 8 年之前 shallow-clone 11e3a9652a first 8 年之前 shebang-command 11e3a9652a first 8 年之前 shebang-regex 11e3a9652a first 8 年之前 shelljs 11e3a9652a first 8 年之前 shellwords 11e3a9652a first 8 年之前 sigmund 11e3a9652a first 8 年之前 signal-exit 11e3a9652a first 8 年之前 slash 11e3a9652a first 8 年之前 slice-ansi 11e3a9652a first 8 年之前 smart-buffer 11e3a9652a first 8 年之前 snapdragon 11e3a9652a first 8 年之前 snapdragon-node 11e3a9652a first 8 年之前 snapdragon-util 11e3a9652a first 8 年之前 sntp 11e3a9652a first 8 年之前 sockjs 11e3a9652a first 8 年之前 sockjs-client 11e3a9652a first 8 年之前 socks 11e3a9652a first 8 年之前 socks-proxy-agent 11e3a9652a first 8 年之前 sort-keys 11e3a9652a first 8 年之前 source-list-map 11e3a9652a first 8 年之前 source-map 11e3a9652a first 8 年之前 source-map-resolve 11e3a9652a first 8 年之前 source-map-support 11e3a9652a first 8 年之前 source-map-url 11e3a9652a first 8 年之前 spdx-correct 11e3a9652a first 8 年之前 spdx-exceptions 11e3a9652a first 8 年之前 spdx-expression-parse 11e3a9652a first 8 年之前 spdx-license-ids 11e3a9652a first 8 年之前 spdy 11e3a9652a first 8 年之前 spdy-transport 11e3a9652a first 8 年之前 split-string 11e3a9652a first 8 年之前 sprintf-js 11e3a9652a first 8 年之前 sshpk 11e3a9652a first 8 年之前 ssri 11e3a9652a first 8 年之前 stack-utils 11e3a9652a first 8 年之前 stackframe 11e3a9652a first 8 年之前 static-extend 11e3a9652a first 8 年之前 statuses 11e3a9652a first 8 年之前 stdout-stream 11e3a9652a first 8 年之前 stealthy-require 11e3a9652a first 8 年之前 stream-browserify 11e3a9652a first 8 年之前 stream-each 11e3a9652a first 8 年之前 stream-http 11e3a9652a first 8 年之前 stream-shift 11e3a9652a first 8 年之前 strict-uri-encode 11e3a9652a first 8 年之前 string-length 11e3a9652a first 8 年之前 string-width 11e3a9652a first 8 年之前 string_decoder 11e3a9652a first 8 年之前 stringstream 11e3a9652a first 8 年之前 strip-ansi 11e3a9652a first 8 年之前 strip-bom 11e3a9652a first 8 年之前 strip-eof 11e3a9652a first 8 年之前 strip-indent 11e3a9652a first 8 年之前 strip-json-comments 11e3a9652a first 8 年之前 supports-color 11e3a9652a first 8 年之前 svg-tags 11e3a9652a first 8 年之前 svgo 11e3a9652a first 8 年之前 symbol-tree 11e3a9652a first 8 年之前 table 11e3a9652a first 8 年之前 tapable 11e3a9652a first 8 年之前 tar 11e3a9652a first 8 年之前 test-exclude 11e3a9652a first 8 年之前 text-table 11e3a9652a first 8 年之前 throat 11e3a9652a first 8 年之前 throttle-debounce 11e3a9652a first 8 年之前 through 11e3a9652a first 8 年之前 through2 11e3a9652a first 8 年之前 thunkify 11e3a9652a first 8 年之前 thunky 11e3a9652a first 8 年之前 time-stamp 11e3a9652a first 8 年之前 timers-browserify 11e3a9652a first 8 年之前 tmp 11e3a9652a first 8 年之前 tmpl 11e3a9652a first 8 年之前 to-arraybuffer 11e3a9652a first 8 年之前 to-fast-properties 11e3a9652a first 8 年之前 to-object-path 11e3a9652a first 8 年之前 to-regex 11e3a9652a first 8 年之前 to-regex-range 11e3a9652a first 8 年之前 toposort 11e3a9652a first 8 年之前 tough-cookie 11e3a9652a first 8 年之前 tr46 11e3a9652a first 8 年之前 trim-newlines 11e3a9652a first 8 年之前 trim-right 11e3a9652a first 8 年之前 true-case-path 11e3a9652a first 8 年之前 tryer 11e3a9652a first 8 年之前 tsconfig 11e3a9652a first 8 年之前 tty-browserify 11e3a9652a first 8 年之前 tunnel-agent 11e3a9652a first 8 年之前 tweetnacl 11e3a9652a first 8 年之前 type-check 11e3a9652a first 8 年之前 type-detect 11e3a9652a first 8 年之前 type-is 11e3a9652a first 8 年之前 typedarray 11e3a9652a first 8 年之前 uglify-js 11e3a9652a first 8 年之前 uglify-to-browserify 11e3a9652a first 8 年之前 uglifyjs-webpack-plugin 11e3a9652a first 8 年之前 union-value 11e3a9652a first 8 年之前 uniq 11e3a9652a first 8 年之前 uniqid 11e3a9652a first 8 年之前 uniqs 11e3a9652a first 8 年之前 unique-filename 11e3a9652a first 8 年之前 unique-slug 11e3a9652a first 8 年之前 unpipe 11e3a9652a first 8 年之前 unset-value 11e3a9652a first 8 年之前 upath 11e3a9652a first 8 年之前 upper-case 11e3a9652a first 8 年之前 uri-js 11e3a9652a first 8 年之前 urix 11e3a9652a first 8 年之前 url 11e3a9652a first 8 年之前 url-loader 11e3a9652a first 8 年之前 url-parse 11e3a9652a first 8 年之前 use 11e3a9652a first 8 年之前 util 11e3a9652a first 8 年之前 util-deprecate 11e3a9652a first 8 年之前 util.promisify 11e3a9652a first 8 年之前 utila 11e3a9652a first 8 年之前 utils-merge 11e3a9652a first 8 年之前 uuid 11e3a9652a first 8 年之前 validate-npm-package-license 11e3a9652a first 8 年之前 vary 11e3a9652a first 8 年之前 vendors 11e3a9652a first 8 年之前 verror 11e3a9652a first 8 年之前 vm-browserify 11e3a9652a first 8 年之前 vue 11e3a9652a first 8 年之前 vue-eslint-parser 11e3a9652a first 8 年之前 vue-hot-reload-api 11e3a9652a first 8 年之前 vue-jest 11e3a9652a first 8 年之前 vue-loader 11e3a9652a first 8 年之前 vue-router 11e3a9652a first 8 年之前 vue-style-loader 11e3a9652a first 8 年之前 vue-template-compiler 11e3a9652a first 8 年之前 vue-template-es2015-compiler 11e3a9652a first 8 年之前 w3c-hr-time 11e3a9652a first 8 年之前 walker 11e3a9652a first 8 年之前 watch 11e3a9652a first 8 年之前 watchpack 11e3a9652a first 8 年之前 wbuf 11e3a9652a first 8 年之前 webidl-conversions 11e3a9652a first 8 年之前 webpack 11e3a9652a first 8 年之前 webpack-bundle-analyzer 11e3a9652a first 8 年之前 webpack-dev-middleware 11e3a9652a first 8 年之前 webpack-dev-server 11e3a9652a first 8 年之前 webpack-merge 11e3a9652a first 8 年之前 webpack-sources 11e3a9652a first 8 年之前 websocket-driver 11e3a9652a first 8 年之前 websocket-extensions 11e3a9652a first 8 年之前 whatwg-encoding 11e3a9652a first 8 年之前 whatwg-mimetype 11e3a9652a first 8 年之前 whatwg-url 11e3a9652a first 8 年之前 whet.extend 11e3a9652a first 8 年之前 which 11e3a9652a first 8 年之前 which-module 11e3a9652a first 8 年之前 wide-align 11e3a9652a first 8 年之前 window-size 11e3a9652a first 8 年之前 wordwrap 11e3a9652a first 8 年之前 worker-farm 11e3a9652a first 8 年之前 wrap-ansi 11e3a9652a first 8 年之前 wrappy 11e3a9652a first 8 年之前 write 11e3a9652a first 8 年之前 write-file-atomic 11e3a9652a first 8 年之前 ws 11e3a9652a first 8 年之前 xml-name-validator 11e3a9652a first 8 年之前 xregexp 11e3a9652a first 8 年之前 xtend 11e3a9652a first 8 年之前 xxhashjs 11e3a9652a first 8 年之前 y18n 11e3a9652a first 8 年之前 yallist 11e3a9652a first 8 年之前 yargs 11e3a9652a first 8 年之前 yargs-parser 11e3a9652a first 8 年之前 yauzl 11e3a9652a first 8 年之前 zrender 11e3a9652a first 8 年之前 thumbnail_utils make_thumb · ce10db91f9 - Gogs: Go Git Service

thumbnail_utils make_thumb

Brightcells 10 jaren geleden
bovenliggende
commit
ce10db91f9
3 gewijzigde bestanden met toevoegingen van 27 en 0 verwijderingen
  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')