From 133aeb83746e1c5ed7efe2958e7c4d60b7cf6658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Wed, 7 Aug 2024 14:00:02 +0200 Subject: [PATCH] v0.0.495 --- goextVersion.go | 4 ++-- imageext/image.go | 8 ++++---- imageext/types.go | 11 +++++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/goextVersion.go b/goextVersion.go index 38c1ab3..40ae010 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.494" +const GoextVersion = "0.0.495" -const GoextVersionTimestamp = "2024-08-07T13:57:29+0200" +const GoextVersionTimestamp = "2024-08-07T14:00:02+0200" diff --git a/imageext/image.go b/imageext/image.go index 481d091..1fd16a0 100644 --- a/imageext/image.go +++ b/imageext/image.go @@ -214,7 +214,7 @@ func ObjectFitImage(img image.Image, bbw float64, bbh float64, fit ImageFit, fil draw.Draw(newImg, newImg.Bounds(), &image.Uniform{C: fillColor}, image.Pt(0, 0), draw.Src) draw.Draw(newImg, newImg.Bounds(), img, image.Pt(0, 0), draw.Over) - return newImg, newImg.Bounds(), nil + return newImg, PercentageRectangle{0, 0, 1, 1}, nil } if fit == ImageFitContainCenter || fit == ImageFitContainTopLeft || fit == ImageFitContainTopRight || fit == ImageFitContainBottomLeft || fit == ImageFitContainBottomRight { @@ -266,7 +266,7 @@ func ObjectFitImage(img image.Image, bbw float64, bbh float64, fit ImageFit, fil draw.Draw(newImg, newImg.Bounds(), &image.Uniform{C: fillColor}, image.Pt(0, 0), draw.Src) draw.Draw(newImg, destBounds, img, image.Pt(0, 0), draw.Over) - return newImg, destBounds, nil + return newImg, calcRelativeRect(destBounds, newImg.Bounds()), nil } if fit == ImageFitStretch { @@ -293,10 +293,10 @@ func ObjectFitImage(img image.Image, bbw float64, bbh float64, fit ImageFit, fil draw.Draw(newImg, newImg.Bounds(), &image.Uniform{C: fillColor}, image.Pt(0, 0), draw.Src) draw.Draw(newImg, newImg.Bounds(), img, image.Pt(0, 0), draw.Over) - return newImg, newImg.Bounds(), nil + return newImg, PercentageRectangle{0, 0, 1, 1}, nil } - return nil, image.Rectangle{}, exerr.New(exerr.TypeInternal, fmt.Sprintf("unknown image-fit: '%s'", fit)).Build() + return nil, PercentageRectangle{}, exerr.New(exerr.TypeInternal, fmt.Sprintf("unknown image-fit: '%s'", fit)).Build() } func VerifyAndDecodeImage(data io.Reader, mime string) (image.Image, error) { diff --git a/imageext/types.go b/imageext/types.go index f2b5cd7..841fbf9 100644 --- a/imageext/types.go +++ b/imageext/types.go @@ -1,5 +1,7 @@ package imageext +import "image" + type Rectangle struct { X float64 Y float64 @@ -22,3 +24,12 @@ func (r PercentageRectangle) Of(ref Rectangle) Rectangle { H: r.H * ref.H, } } + +func calcRelativeRect(inner image.Rectangle, outer image.Rectangle) PercentageRectangle { + return PercentageRectangle{ + X: float64(inner.Min.X-outer.Min.X) / float64(outer.Dx()), + Y: float64(inner.Min.Y-outer.Min.Y) / float64(outer.Dy()), + W: float64(inner.Dx()) / float64(outer.Dx()), + H: float64(inner.Dy()) / float64(outer.Dy()), + } +}