selective / image-type
Image type detection
Installs: 167 210
Dependents: 1
Suggesters: 0
Security: 0
Stars: 7
Watchers: 4
Forks: 4
Open Issues: 0
Requires
- php: ^8.1
Requires (Dev)
README
Image type detection library for PHP.
Features
- Detection of the image type based on its content (header)
- No dependencies
- Very fast
Supported formats
Raster
- 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))
Vector
- AI (Adobe Illustrator)
- EMF (Enhanced Metafile)
- EMF+ (Enhanced Metafile)
- SVG (Scalable Vector Graphics)
- WMF (Windows Metafile Format)
Compound
- SWF (Small Web Format, Flash)
RAW
- 3FR (Hasselblad)
- CR2 (Cannon)
- CR3 (Canon)
- DNG (Digital Negative - Adobe)
- IIQ (Phase One)
- ORF (Olympus)
- PEF (Pentax)
- RW2 (Panasonic)
HDR
- JPEG-HDR
- CIN (Cineon Image File Format, Kodak)
- DPX (Digital Picture Exchange)
- OpenEXR
- PBM (Portable Bit Map HDR)
- PFM (Portable Float Map)
- Radiance HDR
Requirements
- PHP 8.1+
Installation
composer require selective/image-type
Usage
Detect the image type of file
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
Detect the image type of in-memory object
$image = new SplTempFileObject(); $image->fwrite('my file content'); $detector = new ImageTypeDetector(); // Add image detectors $detector->addProvider(new RasterProvider()); echo $detector->getImageTypeFromFile($file)->getFormat();
Similar libraries
License
- MIT