Avvio rapido

Avvio rapido

Questa pagina illustra il più piccolo esempio funzionante: analizzare un file per determinarne il formato e le proprietà dell’intestazione, quindi vedere come la libreria gestisce un file danneggiato invece di lanciare un’eccezione.


Analizza un file

ImageProbe è il singolo punto di ingresso statico. ProbeFile legge solo la parte necessaria dell’intestazione del file per popolare un risultato ImageInfo — non decodifica mai i dati dei pixel:

using Aspose.Imaging.Foss;

var info = ImageProbe.ProbeFile("photo.jpg");
Console.WriteLine($"{info.Format}: {info.Width}x{info.Height}, {info.BitDepth}-bit");

ImageInfo espone Format, Width, Height, BitDepth e FrameCount — popolati solo quando il formato rilevato effettivamente contiene tali dati.


Analizza uno stream o un array di byte

Probe accetta direttamente un Stream o un byte[], e DetectFormat restituisce solo il ImageFormat quando non è necessario l’intera intestazione:

using Aspose.Imaging.Foss;
using System.IO;

byte[] bytes = File.ReadAllBytes("photo.jpg");
var format = ImageProbe.DetectFormat(bytes);

using var stream = File.OpenRead("photo.jpg");
var info = ImageProbe.Probe(stream);

Gestione di input troncati o malformati

ImageProbe non genera mai eccezioni su input malformati o troncati. Invece di sollevare un’eccezione, restituisce un ImageInfo parziale con i campi che è riuscito a leggere — Format è sempre impostato quando il marcatore di formato dell’intestazione è stato riconosciuto, anche se il resto del file è stato tagliato:

using Aspose.Imaging.Foss;

byte[] truncated = fullGifBytes[..^2]; // last two bytes missing

var info = ImageProbe.Probe(truncated);
Console.WriteLine(info.Format);        // Gif — detected from the header alone

Ciò rende ImageProbe sicuro da eseguire su file non attendibili o parzialmente scaricati senza avvolgere ogni chiamata in un try/catch.


Prossimi passi

Vedi anche

 Italiano