diff --git a/internal/epub/filters/epub_filters_autorotate.go b/internal/epub/filters/epub_filters_autorotate.go index 886c4f8..b0561bc 100644 --- a/internal/epub/filters/epub_filters_autorotate.go +++ b/internal/epub/filters/epub_filters_autorotate.go @@ -7,29 +7,15 @@ import ( "github.com/disintegration/gift" ) -func AutoRotate(viewWidth, viewHeight int) gift.Filter { - return &autoRotateFilter{ - viewWidth, viewHeight, - } +func AutoRotate() gift.Filter { + return &autoRotateFilter{} } type autoRotateFilter struct { - viewWidth, viewHeight int -} - -func (p *autoRotateFilter) needRotate(srcBounds image.Rectangle) bool { - width, height := srcBounds.Dx(), srcBounds.Dy() - if width <= height { - return false - } - if width <= p.viewWidth && height <= p.viewHeight { - return false - } - return true } func (p *autoRotateFilter) Bounds(srcBounds image.Rectangle) (dstBounds image.Rectangle) { - if p.needRotate(srcBounds) { + if srcBounds.Dx() > srcBounds.Dy() { dstBounds = gift.Rotate90().Bounds(srcBounds) } else { dstBounds = srcBounds @@ -38,7 +24,7 @@ func (p *autoRotateFilter) Bounds(srcBounds image.Rectangle) (dstBounds image.Re } func (p *autoRotateFilter) Draw(dst draw.Image, src image.Image, options *gift.Options) { - if p.needRotate(src.Bounds()) { + if src.Bounds().Dx() > src.Bounds().Dy() { gift.Rotate90().Draw(dst, src, options) } else { draw.Draw(dst, dst.Bounds(), src, src.Bounds().Min, draw.Src) diff --git a/internal/epub/image/epub_image_filters.go b/internal/epub/image/epub_image_filters.go index 0e73de0..718e3fd 100644 --- a/internal/epub/image/epub_image_filters.go +++ b/internal/epub/image/epub_image_filters.go @@ -10,7 +10,7 @@ func NewGift(options *Options) *gift.GIFT { g.SetParallelization(false) if options.AutoRotate { - g.Add(epubfilters.AutoRotate(options.ViewWidth, options.ViewHeight)) + g.Add(epubfilters.AutoRotate()) } if options.Contrast != 0 { g.Add(gift.Contrast(float32(options.Contrast)))