v0.0.495
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m44s

This commit is contained in:
Mike Schwörer 2024-08-07 14:00:02 +02:00
parent b78a468632
commit 133aeb8374
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF
3 changed files with 17 additions and 6 deletions

View File

@ -1,5 +1,5 @@
package goext 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"

View File

@ -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(), &image.Uniform{C: fillColor}, image.Pt(0, 0), draw.Src)
draw.Draw(newImg, newImg.Bounds(), img, image.Pt(0, 0), draw.Over) 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 { 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, newImg.Bounds(), &image.Uniform{C: fillColor}, image.Pt(0, 0), draw.Src)
draw.Draw(newImg, destBounds, img, image.Pt(0, 0), draw.Over) 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 { 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(), &image.Uniform{C: fillColor}, image.Pt(0, 0), draw.Src)
draw.Draw(newImg, newImg.Bounds(), img, image.Pt(0, 0), draw.Over) 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) { func VerifyAndDecodeImage(data io.Reader, mime string) (image.Image, error) {

View File

@ -1,5 +1,7 @@
package imageext package imageext
import "image"
type Rectangle struct { type Rectangle struct {
X float64 X float64
Y float64 Y float64
@ -22,3 +24,12 @@ func (r PercentageRectangle) Of(ref Rectangle) Rectangle {
H: r.H * ref.H, 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()),
}
}