Un modo semplice per eseguire questa operazione è delegare il lavoro a ImageMagick tramite il modulo CPAN PerlMagick. I metodi Identify
e Ping
sono progettati per questo scopo.
use strict;
use Image::Magick;
my $im = Image::Magick->new();
my ($width, $height, $size, $format) = $im->Ping('/path/to/my/image.jpg');
Dopo l'esecuzione di questo piccolo programma, la variabile $format
conterrà una stringa con il formato identificato dell'immagine (in questo esempio: "JPEG"), oppure undef
in caso di errore (file inesistente, non riconosciuta formato, ecc.).
Edit: ... e per rispondere completamente alla tua domanda: probabilmente è lecito ritenere che un dato file è un'immagine se Ping
restituisce una stringa di formato, e se è parte di qualsiasi sottoinsieme decide di bianco -list da ImageMagick's list of supported formats (che include anche i formati non immagine).
fonte
2012-06-18 12:53:55
Suppongo che sia possibile rilevare alcuni formati di immagine (.jpg, .png, .gif), ma non tutti i formati esistenti.) Sarebbe sufficiente? – raina77ow
la mia domanda mirava a una soluzione SENZA guardare le estensioni di file – Thariama
Cosa ti ha fatto pensare di aver parlato delle estensioni di file, non dei formati di file? – raina77ow