From e60808adb9827b7046429ad02713942895945156 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Fri, 14 Jul 2023 09:13:25 +0200 Subject: [PATCH 1/4] Show image size on view page --- options/locale/locale_en-US.ini | 1 + routers/web/repo/view.go | 17 +++++++++++++++++ templates/repo/file_info.tmpl | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index c4c9d32e1d4a..b94887486847 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1164,6 +1164,7 @@ audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' stored_lfs = Stored with Git LFS symbolic_link = Symbolic link executable_file = Executable File +image_size = Size: %s commit_graph = Commit Graph commit_graph.select = Select branches commit_graph.hide_pr_refs = Hide Pull Requests diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index ece2ec5416a5..0a80e8e95669 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -9,6 +9,7 @@ import ( gocontext "context" "encoding/base64" "fmt" + "image" "io" "net/http" "net/url" @@ -16,6 +17,10 @@ import ( "strings" "time" + _ "image/gif" + _ "image/jpeg" + _ "image/png" + activities_model "code.gitea.io/gitea/models/activities" admin_model "code.gitea.io/gitea/models/admin" asymkey_model "code.gitea.io/gitea/models/asymkey" @@ -44,6 +49,9 @@ import ( issue_service "code.gitea.io/gitea/services/issue" "github.com/nektos/act/pkg/model" + + _ "golang.org/x/image/bmp" + _ "golang.org/x/image/webp" ) const ( @@ -578,6 +586,15 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st } } + if fInfo.st.IsImage() && !fInfo.st.IsSvgImage() { + img, _, err := image.DecodeConfig(bytes.NewReader(buf)) + if err == nil { + // There are Image formats go can't decode + // Instead of throwing an error in that case, we show the size only when we can decode + ctx.Data["ImageSize"] = fmt.Sprintf("%dx%d", img.Width, img.Height) + } + } + if ctx.Repo.CanEnableEditor(ctx.Doer) { if lfsLock != nil && lfsLock.OwnerID != ctx.Doer.ID { ctx.Data["CanDeleteFile"] = false diff --git a/templates/repo/file_info.tmpl b/templates/repo/file_info.tmpl index 44256a0dcb21..e488998a9967 100644 --- a/templates/repo/file_info.tmpl +++ b/templates/repo/file_info.tmpl @@ -30,4 +30,9 @@ {{.locale.Tr "repo.executable_file"}} {{end}} + {{if .ImageSize}} +
+ {{.locale.Tr "repo.image_size" .ImageSize}} +
+ {{end}} From 5bcf5d31136a9eba93838a0a9e7c2a2275d6bc53 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Fri, 14 Jul 2023 12:40:50 +0200 Subject: [PATCH 2/4] Add comments to import --- routers/web/repo/view.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 0a80e8e95669..c9d139c6beaa 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -17,9 +17,9 @@ import ( "strings" "time" - _ "image/gif" - _ "image/jpeg" - _ "image/png" + _ "image/gif" // for processing gif images + _ "image/jpeg" // for processing jpeg images + _ "image/png" // for processing png images activities_model "code.gitea.io/gitea/models/activities" admin_model "code.gitea.io/gitea/models/admin" @@ -50,8 +50,8 @@ import ( "github.com/nektos/act/pkg/model" - _ "golang.org/x/image/bmp" - _ "golang.org/x/image/webp" + _ "golang.org/x/image/bmp" // for processing bmp images + _ "golang.org/x/image/webp" // for processing webp images ) const ( From 9e0a7f3c9a8f658a686575976fde8ee213a613c0 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Fri, 14 Jul 2023 16:44:33 +0200 Subject: [PATCH 3/4] Run make fmt --- routers/web/repo/view.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index c9d139c6beaa..80b75600cb6c 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -17,9 +17,9 @@ import ( "strings" "time" - _ "image/gif" // for processing gif images + _ "image/gif" // for processing gif images _ "image/jpeg" // for processing jpeg images - _ "image/png" // for processing png images + _ "image/png" // for processing png images activities_model "code.gitea.io/gitea/models/activities" admin_model "code.gitea.io/gitea/models/admin" @@ -50,7 +50,7 @@ import ( "github.com/nektos/act/pkg/model" - _ "golang.org/x/image/bmp" // for processing bmp images + _ "golang.org/x/image/bmp" // for processing bmp images _ "golang.org/x/image/webp" // for processing webp images ) From ccb322d317fc8cfbc2ea47df607465d182a50523 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Mon, 24 Jul 2023 16:22:00 +0200 Subject: [PATCH 4/4] Use px as text --- options/locale/locale_en-US.ini | 1 - routers/web/repo/view.go | 2 +- templates/repo/file_info.tmpl | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index c960c62b5c1a..8784ab6878fe 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1165,7 +1165,6 @@ audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' stored_lfs = Stored with Git LFS symbolic_link = Symbolic link executable_file = Executable File -image_size = Size: %s commit_graph = Commit Graph commit_graph.select = Select branches commit_graph.hide_pr_refs = Hide Pull Requests diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 120580adfa34..66bc9c445a1b 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -591,7 +591,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st if err == nil { // There are Image formats go can't decode // Instead of throwing an error in that case, we show the size only when we can decode - ctx.Data["ImageSize"] = fmt.Sprintf("%dx%d", img.Width, img.Height) + ctx.Data["ImageSize"] = fmt.Sprintf("%dx%dpx", img.Width, img.Height) } } diff --git a/templates/repo/file_info.tmpl b/templates/repo/file_info.tmpl index e488998a9967..7323b30d77b5 100644 --- a/templates/repo/file_info.tmpl +++ b/templates/repo/file_info.tmpl @@ -32,7 +32,7 @@ {{end}} {{if .ImageSize}}
- {{.locale.Tr "repo.image_size" .ImageSize}} + {{.ImageSize}}
{{end}}