summaryrefslogtreecommitdiff
path: root/internal/media/image.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/media/image.go')
-rw-r--r--internal/media/image.go24
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