Image type detection library for PHP.
- Detection of the image type based on its content (header)
- No dependencies
- Very fast
- ANI (Animated Cursor)
- BMP (Windows Bitmap)
- CUR (Cursor)
- DICOM (Digital Imaging and Communications in Medicine)
- GIF (Graphics Interchange Format)
- HEIF / HEIC (High Efficiency Image File Format) / Apple iPhone photos
- ICO (Icon)
- JNG (JPEG Network Graphics)
- JPEG 2000
- JPG / JPEG (Joint Photographic Experts Group)
- JPM (JPEG 2000 compound image)
- MNG (Multiple-image Network Graphics)
- PDN (PaintDotNet)
- PGM (Portable Graymap)
- PNG (Portable Network Graphics)
- PPM (Portable Pixelmap)
- PSB (Photoshop Large Document)
- PSD (Photoshop Document)
- TIF / TIFF (Tagged Image File Format)
- WEBP (WebP)
- XCF (eXperimental Computing Facility (GIMP))
- AI (Adobe Illustrator)
- EMF (Enhanced Metafile)
- EMF+ (Enhanced Metafile)
- SVG (Scalable Vector Graphics)
- WMF (Windows Metafile Format)
- SWF (Small Web Format, Flash)
- 3FR (Hasselblad)
- CR2 (Cannon)
- CR3 (Canon)
- DNG (Digital Negative - Adobe)
- IIQ (Phase One)
- ORF (Olympus)
- PEF (Pentax)
- RW2 (Panasonic)
- JPEG-HDR
- CIN (Cineon Image File Format, Kodak)
- DPX (Digital Picture Exchange)
- OpenEXR
- PBM (Portable Bit Map HDR)
- PFM (Portable Float Map)
- Radiance HDR
- PHP 8.1+
composer require selective/image-type
use Selective\ImageType\ImageTypeDetector;
use Selective\ImageType\Provider\RasterProvider;
use Selective\ImageType\Provider\HdrProvider;
use Selective\ImageType\Provider\RawProvider;
use Selective\ImageType\Provider\VectorProvider;
use SplFileObject;
$file = new SplFileObject('example.jpg');
$detector = new ImageTypeDetector();
// Add image detectors
$detector->addProvider(new HdrProvider());
$detector->addProvider(new RawProvider());
$detector->addProvider(new VectorProvider());
$detector->addProvider(new RasterProvider());
$imageType = $detector->getImageTypeFromFile($file);
// Get the image format
echo $imageType->getFormat(); // jpeg
// Get the mime type
echo $imageType->getMimeType(); // image/jpeg
$image = new SplTempFileObject();
$image->fwrite('my file content');
$detector = new ImageTypeDetector();
// Add image detectors
$detector->addProvider(new RasterProvider());
echo $detector->getImageTypeFromFile($file)->getFormat();
- MIT