aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg/components/media/model.go2
-rw-r--r--pkg/database/sql/media.go6
-rw-r--r--pkg/fileop/exif.go11
3 files changed, 19 insertions, 0 deletions
diff --git a/pkg/components/media/model.go b/pkg/components/media/model.go
index f5c9ff6..0e17e92 100644
--- a/pkg/components/media/model.go
+++ b/pkg/components/media/model.go
@@ -15,6 +15,8 @@ type (
}
MediaEXIF struct {
+ Width *float64
+ Height *float64
Description *string
Camera *string
Maker *string
diff --git a/pkg/database/sql/media.go b/pkg/database/sql/media.go
index 59a4b83..3446f79 100644
--- a/pkg/database/sql/media.go
+++ b/pkg/database/sql/media.go
@@ -21,6 +21,8 @@ type (
MediaEXIF struct {
gorm.Model
+ Width *float64
+ Height *float64
MediaID uint
Media Media
Description *string
@@ -58,6 +60,8 @@ func (self *Media) ToModel() *media.Media {
func (m *MediaEXIF) ToModel() *media.MediaEXIF {
return &media.MediaEXIF{
+ Height: m.Height,
+ Width: m.Width,
Description: m.Description,
Camera: m.Camera,
Maker: m.Maker,
@@ -188,6 +192,8 @@ func (m *MediaRepository) GetEXIF(ctx context.Context, mediaID uint) (*media.Med
func (s *MediaRepository) CreateEXIF(ctx context.Context, id uint, info *media.MediaEXIF) error {
media := &MediaEXIF{
MediaID: id,
+ Width: info.Width,
+ Height: info.Height,
Description: info.Description,
Camera: info.Camera,
Maker: info.Maker,
diff --git a/pkg/fileop/exif.go b/pkg/fileop/exif.go
index c2449ad..79716eb 100644
--- a/pkg/fileop/exif.go
+++ b/pkg/fileop/exif.go
@@ -37,6 +37,17 @@ func ReadExif(path string) (*media.MediaEXIF, error) {
newExif.Maker = &make
}
+ // Get Image Size
+ width, err := fileInfo.GetFloat("ImageWidth")
+ if err == nil {
+ newExif.Width = &width
+ }
+
+ height, err := fileInfo.GetFloat("ImageHeight")
+ if err == nil {
+ newExif.Height = &height
+ }
+
// Get lens
lens, err := fileInfo.GetString("LensModel")
if err == nil {