forgejo/services/repository
wxiaoguang 82224c54e0
Improve avatar uploading / resizing / compressing, remove Fomantic card module (#24653)
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>


![image](https://github.com/go-gitea/gitea/assets/2114189/70e98bb0-ecb9-4c4e-a89f-4a37d4e37f8e)

</details>

APNG:

<details>


![image](https://github.com/go-gitea/gitea/assets/2114189/9055135b-5e2d-4152-bd72-596fcb7c6671)


![image](https://github.com/go-gitea/gitea/assets/2114189/50364caf-f7f6-4241-a289-e485fe4cd582)

</details>

WebP (animated)

<details>


![image](https://github.com/go-gitea/gitea/assets/2114189/f642eb85-498a-49a5-86bf-0a7b04089ae0)

</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>
2023-05-13 20:59:11 +02:00
..
archiver Rewrite queue (#24505) 2023-05-08 19:49:59 +08:00
files Support uploading file to empty repo by API (#24357) 2023-04-26 21:36:26 -04:00
adopt.go Fix unclear IsRepositoryExist logic (#24374) 2023-04-28 14:14:26 -04:00
adopt_test.go Use more specific test methods (#24265) 2023-04-22 17:56:27 -04:00
avatar.go Improve avatar uploading / resizing / compressing, remove Fomantic card module (#24653) 2023-05-13 20:59:11 +02:00
avatar_test.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
branch.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
cache.go
check.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
fork.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
fork_test.go Add option to prohibit fork if user reached maximum limit of repositories (#21848) 2022-12-27 15:21:14 -06:00
hooks.go Add user webhooks (#21563) 2023-03-10 08:28:32 -06:00
lfs.go Add cron method to gc LFS MetaObjects (#22385) 2023-01-16 13:50:53 -06:00
main_test.go
push.go Rewrite queue (#24505) 2023-05-08 19:49:59 +08:00
repository.go Make label templates have consistent behavior and priority (#23749) 2023-04-10 16:44:02 +08:00
repository_test.go refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
review.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
review_test.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
template.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
transfer.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
transfer_test.go Rename almost all Ctx functions (#22071) 2022-12-10 10:46:31 +08:00