imazen/imageflow-dotnet

How to get an image metadata ?

etiennemtl opened this issue · 1 comments

Is there anyway to get an image metadata like image format, size before encoding it?

Yes, using JobContext. Here's an example:

            var imageBytes = Convert.FromBase64String("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=");
            using (var c = new JobContext())
            {
                c.AddInputBytes(0, imageBytes);
                var result = c.GetImageInfo(0);

                Assert.Equal(result.ImageWidth, 1);
                Assert.Equal(result.ImageHeight, 1);
                Assert.Equal(result.PreferredExtension, "png");
                Assert.Equal(result.PreferredMimeType, "image/png");
                Assert.Equal(result.FrameDecodesInto, PixelFormat.Bgr_32);
            }