Show image size on view page (#25884)
This simply shows the Image size on the view page. This is useful, if you search a image with a specific size. ![grafik](https://github.com/go-gitea/gitea/assets/15185051/9868e361-1c2e-447f-b824-70aa28bafcbc)
This commit is contained in:
parent
983167cf49
commit
aba9096999
2 changed files with 22 additions and 0 deletions
|
@ -9,6 +9,7 @@ import (
|
||||||
gocontext "context"
|
gocontext "context"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"image"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
@ -16,6 +17,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
_ "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"
|
activities_model "code.gitea.io/gitea/models/activities"
|
||||||
admin_model "code.gitea.io/gitea/models/admin"
|
admin_model "code.gitea.io/gitea/models/admin"
|
||||||
asymkey_model "code.gitea.io/gitea/models/asymkey"
|
asymkey_model "code.gitea.io/gitea/models/asymkey"
|
||||||
|
@ -44,6 +49,9 @@ import (
|
||||||
issue_service "code.gitea.io/gitea/services/issue"
|
issue_service "code.gitea.io/gitea/services/issue"
|
||||||
|
|
||||||
"github.com/nektos/act/pkg/model"
|
"github.com/nektos/act/pkg/model"
|
||||||
|
|
||||||
|
_ "golang.org/x/image/bmp" // for processing bmp images
|
||||||
|
_ "golang.org/x/image/webp" // for processing webp images
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
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%dpx", img.Width, img.Height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ctx.Repo.CanEnableEditor(ctx, ctx.Doer) {
|
if ctx.Repo.CanEnableEditor(ctx, ctx.Doer) {
|
||||||
if lfsLock != nil && lfsLock.OwnerID != ctx.Doer.ID {
|
if lfsLock != nil && lfsLock.OwnerID != ctx.Doer.ID {
|
||||||
ctx.Data["CanDeleteFile"] = false
|
ctx.Data["CanDeleteFile"] = false
|
||||||
|
|
|
@ -30,4 +30,9 @@
|
||||||
{{.locale.Tr "repo.executable_file"}}
|
{{.locale.Tr "repo.executable_file"}}
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
{{if .ImageSize}}
|
||||||
|
<div class="file-info-entry">
|
||||||
|
{{.ImageSize}}
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue