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"
 | 
						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>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user