github.com/gobuffalo/flect v1.0.3
github.com/gobwas/glob v0.2.3
github.com/goccy/go-yaml v1.19.2
- github.com/gohugoio/gift v0.1.0
+ github.com/gohugoio/gift v0.2.0
github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6
github.com/gohugoio/go-radix v1.2.0
github.com/gohugoio/hashstructure v0.6.0
github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
github.com/gohugoio/gift v0.1.0 h1:KDx+OBrSn/sXmnMdMLYocOLn35MrBpnVhgQghHxd7g8=
github.com/gohugoio/gift v0.1.0/go.mod h1:1Mrm5CjF33KpD749Dwj+UAjWZ3LC6cBXGuTMa5XwoP4=
+github.com/gohugoio/gift v0.2.0 h1:vA31pP0rTVmBxBrhpY3WEt+4zM4g+1sDqYeemwsYeqc=
+github.com/gohugoio/gift v0.2.0/go.mod h1:1Mrm5CjF33KpD749Dwj+UAjWZ3LC6cBXGuTMa5XwoP4=
github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6 h1:pxlAea9eRwuAnt/zKbGqlFO2ZszpIe24YpOVLf+N+4I=
github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6/go.mod h1:m5hu1im5Qc7LDycVLvee6MPobJiRLBYHklypFJR0/aE=
github.com/gohugoio/go-radix v1.2.0 h1:D5GTk8jIoeXirBSc2P4E4NdHKDrenk9k9N0ctU5Yrhg=
AutoOrient(orientation int) gift.Filter
}
-func (f autoOrientFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
+func (f autoOrientFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
panic("not supported")
}
"vertical5x3": dither.Vertical5x3,
}
-func (f ditherFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
- return gift.New().Draw(dst, f.ditherer.Dither(src))
+func (f ditherFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
+ gift.New().Draw(dst, f.ditherer.Dither(src))
}
func (f ditherFilter) Bounds(srcBounds image.Rectangle) image.Rectangle {
}
// Draw applies the mask to the base image.
-func (f maskFilter) Draw(dst draw.Image, baseImage image.Image, options *gift.Options) error {
+func (f maskFilter) Draw(dst draw.Image, baseImage image.Image, options *gift.Options) {
maskImage, err := f.mask.DecodeImage()
if err != nil {
- return fmt.Errorf("failed to decode image: %s", err)
+ panic(fmt.Sprintf("failed to decode image: %s", err))
}
// Ensure the mask is the same size as the base image
draw.DrawMask(outputImage, baseBounds, baseImage, image.Point{}, alphaMask, image.Point{}, draw.Over)
// Copy the result to the destination
- if err := gift.New().Draw(dst, outputImage); err != nil {
- return fmt.Errorf("failed to draw masked image: %s", err)
- }
-
- return nil
+ gift.New().Draw(dst, outputImage)
}
// Bounds returns the bounds of the resulting image.
opacity float32
}
-func (f opacityFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
+func (f opacityFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
// 0 is fully transparent and 255 is opaque.
alpha := uint8(f.opacity * 255)
mask := image.NewUniform(color.Alpha{alpha})
draw.DrawMask(dst, dst.Bounds(), src, image.Point{}, mask, image.Point{}, draw.Over)
- return nil
}
func (f opacityFilter) Bounds(srcBounds image.Rectangle) image.Rectangle {
x, y int
}
-func (f overlayFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
+func (f overlayFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
overlaySrc, err := f.src.DecodeImage()
if err != nil {
- return fmt.Errorf("failed to decode image: %s", err)
+ panic(fmt.Sprintf("failed to decode image: %s", err))
}
- if err := gift.New().Draw(dst, src); err != nil {
- return err
- }
- return gift.New().DrawAt(dst, overlaySrc, image.Pt(f.x, f.y), gift.OverOperator)
+ gift.New().Draw(dst, src)
+ gift.New().DrawAt(dst, overlaySrc, image.Pt(f.x, f.y), gift.OverOperator)
}
func (f overlayFilter) Bounds(srcBounds image.Rectangle) image.Rectangle {
ccolor color.Color // canvas color
}
-func (f paddingFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
+func (f paddingFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
w := src.Bounds().Dx() + f.left + f.right
h := src.Bounds().Dy() + f.top + f.bottom
i := image.NewRGBA(image.Rect(0, 0, w, h))
draw.Draw(i, i.Bounds(), image.NewUniform(f.ccolor), image.Point{}, draw.Src)
- if err := gift.New().Draw(dst, i); err != nil {
- return err
- }
- return gift.New().DrawAt(dst, src, image.Pt(f.left, f.top), gift.OverOperator)
+ gift.New().Draw(dst, i)
+ gift.New().DrawAt(dst, src, image.Pt(f.left, f.top), gift.OverOperator)
}
func (f paddingFilter) Bounds(srcBounds image.Rectangle) image.Rectangle {
spec string
}
-func (f processFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
+func (f processFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
panic("not supported")
}
fontSource hugio.ReadSeekCloserProvider
}
-func (f textFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) error {
+func (f textFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) {
// Load and parse font
ttf := goregular.TTF
if f.fontSource != nil {
d.DrawString(line)
y = y + fontHeight + f.linespacing
}
- return nil
}
func (f textFilter) Bounds(srcBounds image.Rectangle) image.Rectangle {