Skip to content

Commit

Permalink
Fix GeoGebra thumbnails when libvips support is enabled
Browse files Browse the repository at this point in the history
For GeoGebra files we where still using the imaging package to decode the
embedded png, but handed it of to vips for scaling, which can't work. Now
we use vips for decoding the image as well.
  • Loading branch information
rhafer committed Oct 17, 2024
1 parent 4cb5838 commit bd6869e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
2 changes: 2 additions & 0 deletions services/thumbnails/pkg/errors/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ var (
ErrNoEncoderForType = errors.New("thumbnails: no encoder for this type found")
// ErrNoImageFromAudioFile defines an error when an image cannot be extracted from an audio file
ErrNoImageFromAudioFile = errors.New("thumbnails: could not extract image from audio file")
// ErrNoConverterForExtractedImageFromGgsFile defines an error when the extracted image from an ggs file could not be converted
ErrNoConverterForExtractedImageFromGgsFile = errors.New("thumbnails: could not find converter for image extracted from ggs file")
// ErrNoConverterForExtractedImageFromAudioFile defines an error when the extracted image from an audio file could not be converted
ErrNoConverterForExtractedImageFromAudioFile = errors.New("thumbnails: could not find converter for image extracted from audio file")
// ErrCS3AuthorizationMissing defines an error when the CS3 authorization is missing
Expand Down
8 changes: 5 additions & 3 deletions services/thumbnails/pkg/preprocessor/preprocessor.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"mime"
"strings"

"github.com/kovidgoyal/imaging"
"github.com/pkg/errors"
"golang.org/x/image/font"
"golang.org/x/image/font/opentype"
Expand Down Expand Up @@ -60,8 +59,11 @@ func (g GgsDecoder) Convert(r io.Reader) (interface{}, error) {
if err != nil {
return nil, err
}

img, err := imaging.Decode(thumbnail, imaging.AutoOrientation(true))
converter := ForType("image/png", nil)
if converter == nil {
return nil, thumbnailerErrors.ErrNoConverterForExtractedImageFromGgsFile
}
img, err := converter.Convert(thumbnail)
if err != nil {
return nil, errors.Wrap(err, `could not decode the image`)
}
Expand Down

0 comments on commit bd6869e

Please sign in to comment.