From e9f09559b80b83e12727fd24e90d8c7f31d64856 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Tue, 29 Aug 2023 13:02:41 +1000 Subject: Added width and height properties to media objects --- Services/MediaService.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'Services') diff --git a/Services/MediaService.cs b/Services/MediaService.cs index 0ca2c1b..1f2b165 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore; +using ImageMagick; +using Microsoft.EntityFrameworkCore; using MimeDetective; using MimeDetective.Definitions; using System.Security.Cryptography; @@ -120,13 +121,17 @@ public class MediaService : IMediaService { CreateTime = createTime }; + // Determine the MIME type fileData.Seek(0, SeekOrigin.Begin); var defs = inspector.Inspect(fileData); - var mime = defs.ByMimeType().FirstOrDefault()?.MimeType; if(mime is null) throw new MediaCreateException("Unsupported file type"); + // Read the image with ImageMagick to determine the width and height + fileData.Seek(0, SeekOrigin.Begin); + using var magickImage = new MagickImage(fileData); + var media = db.Media .FirstOrDefault(m => m.Checksum == hash); @@ -137,6 +142,8 @@ public class MediaService : IMediaService { media = new() { Checksum = hash, MimeType = mime, + Width = magickImage.Width, + Height = magickImage.Height, UploadedFiles = new() { fileRecord }, -- cgit v1.3