Lusamine.ImageIdentifier
1.2.0
See the version list below for details.
dotnet add package Lusamine.ImageIdentifier --version 1.2.0
NuGet\Install-Package Lusamine.ImageIdentifier -Version 1.2.0
<PackageReference Include="Lusamine.ImageIdentifier" Version="1.2.0" />
<PackageVersion Include="Lusamine.ImageIdentifier" Version="1.2.0" />
<PackageReference Include="Lusamine.ImageIdentifier" />
paket add Lusamine.ImageIdentifier --version 1.2.0
#r "nuget: Lusamine.ImageIdentifier, 1.2.0"
#:package Lusamine.ImageIdentifier@1.2.0
#addin nuget:?package=Lusamine.ImageIdentifier&version=1.2.0
#tool nuget:?package=Lusamine.ImageIdentifier&version=1.2.0
Lusamine.ImageIdentifier
Identify an image's format and pixel dimensions by reading only its header. The full image is never loaded into memory. Works over any readable stream, including non-seekable ones (network, compression).
Supported formats: PNG, JPEG, GIF, BMP, WebP (VP8/VP8L/VP8X), TIFF, ICO.
Usage
using Lusamine.ImageIdentifier;
var identifier = new ImageIdentifier();
using var stream = File.OpenRead("photo.jpg");
ImageInfo? info = identifier.Identify(stream);
if (info is not null)
Console.WriteLine($"{info.Format} {info.Width}x{info.Height}");
Identify returns null when the data is unrecognized or the header is truncated.
Why
Only the leading header bytes are read (typically well under 1 KB), so identifying a multi-megabyte image is allocation-light and near-instant. For non-seekable streams the reader skips forward by reading and discarding, so it still never buffers the whole file.
Extensibility
The decoder set is injectable for custom formats or testing:
var identifier = new ImageIdentifier(new IImageFormatDecoder[] { new MyFormatDecoder() });
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.