mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	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. 
This commit is contained in:
		@@ -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"  // 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"
 | 
			
		||||
	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"  // for processing bmp images
 | 
			
		||||
	_ "golang.org/x/image/webp" // for processing webp images
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
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 lfsLock != nil && lfsLock.OwnerID != ctx.Doer.ID {
 | 
			
		||||
			ctx.Data["CanDeleteFile"] = false
 | 
			
		||||
 
 | 
			
		||||
@@ -30,4 +30,9 @@
 | 
			
		||||
			{{.locale.Tr "repo.executable_file"}}
 | 
			
		||||
		</div>
 | 
			
		||||
	{{end}}
 | 
			
		||||
	{{if .ImageSize}}
 | 
			
		||||
		<div class="file-info-entry">
 | 
			
		||||
			{{.ImageSize}}
 | 
			
		||||
		</div>
 | 
			
		||||
	{{end}}
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user