Search code examples
skiasharp

Find file format of loaded bitmap with SkiaSharp?


I'm trying to figure out the format of an image that is loaded by an array of bytes into an SKBitmap. I'd just like to know if it is a JPEG or PNG, etc.

// Was the decoding done by a JPEG decoder or PNG or?
var bitmap = SKBitmap.Decode(buffer);    

Is this possible?


Solution

  • I would have a look at SKCodec.

    https://learn.microsoft.com/dotnet/api/skiasharp.skcodec

    That doesn't even load the actual image data out the box - just the headers. The way, you don't use stacks of memory when reading the file type.

    To read the type, use the EncodedFormat property:

    https://learn.microsoft.com/dotnet/api/skiasharp.skcodec.encodedformat

    using var codec = SKCodec.Create(...);
    var format = codec.EncodedFormat;