Skip to content

Commit 20db1c2

Browse files
committed
Return mime type #69
1 parent 6291c44 commit 20db1c2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+356
-446
lines changed

README.md

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,13 @@ $detector->addProvider(new RawProvider());
108108
$detector->addProvider(new VectorProvider());
109109
$detector->addProvider(new RasterProvider());
110110

111-
echo $detector->getImageTypeFromFile($file)->toString(); // jpeg
111+
$imageType = $detector->getImageTypeFromFile($file);
112+
113+
// Get the image format
114+
echo $imageType->getFormat(); // jpeg
115+
116+
// Get the mime type
117+
echo $imageType->getMimeType(); // image/jpeg
112118
```
113119

114120
### Detect the image type of in-memory object
@@ -123,24 +129,7 @@ $detector = new ImageTypeDetector();
123129
// Add image detectors
124130
$detector->addProvider(new RasterProvider());
125131

126-
echo $detector->getImageTypeFromFile($file)->toString();
127-
```
128-
129-
### Detect mime type of file
130-
131-
```php
132-
use Selective\ImageType\ImageTypeDetector;
133-
use Selective\ImageType\Provider\RasterProvider;
134-
use SplFileObject;
135-
136-
$file = new SplFileObject('example.jpg');
137-
138-
$detector = new ImageTypeDetector();
139-
140-
// Add image detectors
141-
$detector->addProvider(new RasterProvider());
142-
143-
echo $detector->getMimeTypeFromFile($file)->toString(); // image/jpeg
132+
echo $detector->getImageTypeFromFile($file)->getFormat();
144133
```
145134

146135
## Similar libraries

src/Detector/AiDetector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -23,6 +25,6 @@ public function detect(SplFileObject $file): ?ImageType
2325
{
2426
$bytes = (string)$file->fread(10);
2527

26-
return $bytes === '%!PS-Adobe' ? new ImageType(ImageType::AI) : null;
28+
return $bytes === '%!PS-Adobe' ? new ImageType(ImageFormat::AI, MimeType::APPLICATION_POSTSCRIPT) : null;
2729
}
2830
}

src/Detector/AniDetector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -23,6 +25,6 @@ public function detect(SplFileObject $file): ?ImageType
2325
$file->fread(4);
2426
$aniSignature = $file->fread(4);
2527

26-
return $riffSignature === 'RIFF' && $aniSignature === 'ACON' ? new ImageType(ImageType::ANI) : null;
28+
return $riffSignature === 'RIFF' && $aniSignature === 'ACON' ? new ImageType(ImageFormat::ANI, MimeType::APPLICATION_X_NAVI_ANIMATION) : null;
2729
}
2830
}

src/Detector/BmpDetector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -19,6 +21,6 @@ final class BmpDetector implements DetectorInterface
1921
*/
2022
public function detect(SplFileObject $file): ?ImageType
2123
{
22-
return $file->fread(2) === 'BM' ? new ImageType(ImageType::BMP) : null;
24+
return $file->fread(2) === 'BM' ? new ImageType(ImageFormat::BMP, MimeType::IMAGE_BMP) : null;
2325
}
2426
}

src/Detector/CineonDetector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -23,6 +25,6 @@ public function detect(SplFileObject $file): ?ImageType
2325
{
2426
$bytes = bin2hex((string)$file->fread(4));
2527

26-
return $bytes === '802a5fd7' || $bytes === 'd75f2a80' ? new ImageType(ImageType::CIN) : null;
28+
return $bytes === '802a5fd7' || $bytes === 'd75f2a80' ? new ImageType(ImageFormat::CIN, MimeType::IMAGE_CINEON) : null;
2729
}
2830
}

src/Detector/Cr2Detector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -28,6 +30,6 @@ public function detect(SplFileObject $file): ?ImageType
2830

2931
$bytes = $file->fread(8);
3032

31-
return $bytes === "\x2a\0\x10\0\0\0CR" ? new ImageType(ImageType::CR2) : null;
33+
return $bytes === "\x2a\0\x10\0\0\0CR" ? new ImageType(ImageFormat::CR2, MimeType::IMAGE_CR2) : null;
3234
}
3335
}

src/Detector/Cr3Detector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -23,6 +25,6 @@ public function detect(SplFileObject $file): ?ImageType
2325

2426
$bytes = $file->fread(7);
2527

26-
return $bytes === 'ftypcrx' ? new ImageType(ImageType::CR3) : null;
28+
return $bytes === 'ftypcrx' ? new ImageType(ImageFormat::CR3, MimeType::IMAGE_CR3) : null;
2729
}
2830
}

src/Detector/CurDetector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -19,6 +21,6 @@ final class CurDetector implements DetectorInterface
1921
*/
2022
public function detect(SplFileObject $file): ?ImageType
2123
{
22-
return $file->fread(3) === "\0\0\2" ? new ImageType(ImageType::CUR) : null;
24+
return $file->fread(3) === "\0\0\2" ? new ImageType(ImageFormat::CUR, MimeType::IMAGE_X_ICON) : null;
2325
}
2426
}

src/Detector/DcmDetector.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -21,6 +23,6 @@ public function detect(SplFileObject $file): ?ImageType
2123
{
2224
$file->fread(128);
2325

24-
return $file->fread(4) === 'DICM' ? new ImageType(ImageType::DICOM) : null;
26+
return $file->fread(4) === 'DICM' ? new ImageType(ImageFormat::DICOM, MimeType::APPLICATION_DICOM) : null;
2527
}
2628
}

src/Detector/DngDetector.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Selective\ImageType\Detector;
44

5+
use Selective\ImageType\ImageFormat;
56
use Selective\ImageType\ImageType;
7+
use Selective\ImageType\MimeType;
68
use SplFileObject;
79

810
/**
@@ -30,6 +32,7 @@ public function detect(SplFileObject $file): ?ImageType
3032
$bytes = (string)$file->fread(12);
3133

3234
return ((strpos($bytes, "\x04") !== false || strpos($bytes, "\x02") !== false) &&
33-
strpos($bytes, "\x01") && substr_count($bytes, "\0") >= 2) ? new ImageType(ImageType::DNG) : null;
35+
strpos($bytes, "\x01") && substr_count($bytes, "\0") >= 2) ?
36+
new ImageType(ImageFormat::DNG, MimeType::IMAGE_X_ADOBE_DNG) : null;
3437
}
3538
}

0 commit comments

Comments
 (0)