Fixes: #8972 Fixes: #24263 And I think it also (partially) fix #24263 (no need to convert) , because users could upload any supported image format if it isn't larger than AVATAR_MAX_ORIGIN_SIZE The main idea: * if the uploaded file size is not larger than AVATAR_MAX_ORIGIN_SIZE, use the origin * if the resized size is larger than the origin, use the origin Screenshots: JPG: <details>  </details> APNG: <details>   </details> WebP (animated) <details>  </details> The only exception: if a WebP image is larger than MaxOriginSize and it is animated, then current `webp` package can't decode it, so only in this case it isn't supported. IMO no need to support such case: why a user would upload a 1MB animated webp as avatar? crazy ..... --------- Co-authored-by: silverwind <me@silverwind.io>
52 lines
928 B
JSON
52 lines
928 B
JSON
{
|
|
"version": "2.8.7",
|
|
"base": "node_modules/fomantic-ui",
|
|
"paths": {
|
|
"source": {
|
|
"config": "src/theme.config",
|
|
"definitions": "src/definitions/",
|
|
"site": "src/site/",
|
|
"themes": "src/themes/"
|
|
},
|
|
"output": {
|
|
"packaged": "../../build/",
|
|
"uncompressed": "../../build/components/",
|
|
"compressed": "../../build/components/",
|
|
"themes": "../../build/themes/"
|
|
},
|
|
"clean": "../../build/"
|
|
},
|
|
"permission": false,
|
|
"autoInstall": false,
|
|
"rtl": false,
|
|
"admin": false,
|
|
"components": [
|
|
"api",
|
|
"button",
|
|
"checkbox",
|
|
"comment",
|
|
"container",
|
|
"dimmer",
|
|
"divider",
|
|
"dropdown",
|
|
"form",
|
|
"grid",
|
|
"header",
|
|
"input",
|
|
"item",
|
|
"label",
|
|
"list",
|
|
"loader",
|
|
"menu",
|
|
"message",
|
|
"modal",
|
|
"reset",
|
|
"search",
|
|
"segment",
|
|
"site",
|
|
"tab",
|
|
"table",
|
|
"text",
|
|
"transition"
|
|
]
|
|
}
|