From 785157ba1f3f784f07abfb3eb6d27d246c5ad106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=B4=8A=E1=B4=8F=E1=B4=87=20=E1=B4=84=CA=9C=E1=B4=87?= =?UTF-8?q?=C9=B4?= Date: Sun, 8 Feb 2026 00:08:50 -0500 Subject: [PATCH] all: migrate from nfnt/resize to golang.org/x/image/draw (#8158) --- go.mod | 2 +- go.sum | 4 ++-- internal/database/repo.go | 7 ++++--- internal/userutil/userutil.go | 7 ++++--- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index f5f0342a5..b1256f0bf 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,6 @@ require ( github.com/json-iterator/go v1.1.12 github.com/microcosm-cc/bluemonday v1.0.27 github.com/msteinert/pam v1.2.0 - github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/niklasfasching/go-org v1.9.1 github.com/olekukonko/tablewriter v1.1.3 github.com/pquerna/otp v1.5.0 @@ -47,6 +46,7 @@ require ( github.com/unknwon/paginater v0.0.0-20170405233947-45e5d631308e github.com/urfave/cli v1.22.17 golang.org/x/crypto v0.47.0 + golang.org/x/image v0.35.0 golang.org/x/net v0.48.0 golang.org/x/text v0.33.0 gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df diff --git a/go.sum b/go.sum index 02201007f..c5f2369e1 100644 --- a/go.sum +++ b/go.sum @@ -329,8 +329,6 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA= github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI= github.com/niklasfasching/go-org v1.9.1 h1:/3s4uTPOF06pImGa2Yvlp24yKXZoTYM+nsIlMzfpg/0= @@ -490,6 +488,8 @@ golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= +golang.org/x/image v0.35.0 h1:LKjiHdgMtO8z7Fh18nGY6KDcoEtVfsgLDPeLyguqb7I= +golang.org/x/image v0.35.0/go.mod h1:MwPLTVgvxSASsxdLzKrl8BRFuyqMyGhLwmC+TO1Sybk= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/internal/database/repo.go b/internal/database/repo.go index 6d46ade28..2cfb8c9b5 100644 --- a/internal/database/repo.go +++ b/internal/database/repo.go @@ -18,9 +18,9 @@ import ( "time" "github.com/cockroachdb/errors" - "github.com/nfnt/resize" "github.com/unknwon/cae/zip" "github.com/unknwon/com" + "golang.org/x/image/draw" "gopkg.in/ini.v1" log "unknwon.dev/clog/v2" "xorm.io/xorm" @@ -351,8 +351,9 @@ func (r *Repository) UploadAvatar(data []byte) error { } defer fw.Close() - m := resize.Resize(avatar.DefaultSize, avatar.DefaultSize, img, resize.NearestNeighbor) - if err = png.Encode(fw, m); err != nil { + dst := image.NewRGBA(image.Rect(0, 0, avatar.DefaultSize, avatar.DefaultSize)) + draw.NearestNeighbor.Scale(dst, dst.Bounds(), img, img.Bounds(), draw.Over, nil) + if err = png.Encode(fw, dst); err != nil { return errors.Newf("encode image: %v", err) } diff --git a/internal/userutil/userutil.go b/internal/userutil/userutil.go index b062edc82..91aa655e4 100644 --- a/internal/userutil/userutil.go +++ b/internal/userutil/userutil.go @@ -14,8 +14,8 @@ import ( "strings" "github.com/cockroachdb/errors" - "github.com/nfnt/resize" "golang.org/x/crypto/pbkdf2" + "golang.org/x/image/draw" "gogs.io/gogs/internal/avatar" "gogs.io/gogs/internal/conf" @@ -100,8 +100,9 @@ func SaveAvatar(userID int64, data []byte) error { } defer func() { _ = f.Close() }() - m := resize.Resize(avatar.DefaultSize, avatar.DefaultSize, img, resize.NearestNeighbor) - if err = png.Encode(f, m); err != nil { + dst := image.NewRGBA(image.Rect(0, 0, avatar.DefaultSize, avatar.DefaultSize)) + draw.NearestNeighbor.Scale(dst, dst.Bounds(), img, img.Bounds(), draw.Over, nil) + if err = png.Encode(f, dst); err != nil { return errors.Wrap(err, "encode avatar image to file") } return nil