diff options
author | 2022-01-04 17:37:54 +0100 | |
---|---|---|
committer | 2022-01-04 17:37:54 +0100 | |
commit | 7ebe0f6a15f1881e465b8e78bb8ef8b4982b00aa (patch) | |
tree | e8ddc08aa2eb8df937438fb72dd99690a9e81a6a /internal/media/image.go | |
parent | return very partial image on first upload (diff) | |
download | gotosocial-7ebe0f6a15f1881e465b8e78bb8ef8b4982b00aa.tar.xz |
start working on thumb + full funcs
Diffstat (limited to 'internal/media/image.go')
-rw-r--r-- | internal/media/image.go | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/internal/media/image.go b/internal/media/image.go index 4ad68db5a..157ae0f4a 100644 --- a/internal/media/image.go +++ b/internal/media/image.go @@ -54,6 +54,14 @@ type ImageMeta struct { } func (m *manager) preProcessImage(ctx context.Context, data []byte, contentType string, accountID string) (*Media, error) { + if !supportedImage(contentType) { + return nil, fmt.Errorf("image type %s not supported", contentType) + } + + if len(data) == 0 { + return nil, errors.New("image was of size 0") + } + id, err := id.NewRandomULID() if err != nil { return nil, err @@ -93,21 +101,7 @@ func (m *manager) preProcessImage(ctx context.Context, data []byte, contentType var original *ImageMeta var small *ImageMeta - switch contentType { - case mimeImageJpeg, mimeImagePng: - // first 'clean' image by purging exif data from it - var exifErr error - if clean, exifErr = purgeExif(data); exifErr != nil { - return nil, fmt.Errorf("error cleaning exif data: %s", exifErr) - } - original, err = decodeImage(clean, contentType) - case mimeImageGif: - // gifs are already clean - no exif data to remove - clean = data - original, err = decodeGif(clean) - default: - err = fmt.Errorf("content type %s not a processible image type", contentType) - } + if err != nil { return nil, err |