Verzeichnisstruktur phpBB-3.3.16
- Veröffentlicht
- 27.04.2026
So funktioniert es
|
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
TypeJp2.php
01 <?php
02
03 /**
04 * fast-image-size image type jpeg 2000
05 * @package fast-image-size
06 * @copyright (c) Marc Alexander <admin@m-a-styles.de>
07 *
08 * For the full copyright and license information, please view the LICENSE
09 * file that was distributed with this source code.
10 */
11
12 namespace FastImageSize\Type;
13
14 use FastImageSize\ImageReader;
15
16 class TypeJp2 extends TypeBase
17 {
18 /** @var string JPEG 2000 signature */
19 const JPEG_2000_SIGNATURE = "\x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A";
20
21 /** @var string JPEG 2000 SOC marker */
22 const JPEG_2000_SOC_MARKER = "\xFF\x4F";
23
24 /** @var string JPEG 2000 SIZ marker */
25 const JPEG_2000_SIZ_MARKER = "\xFF\x51";
26
27 /**
28 * {@inheritdoc}
29 */
30 public function getSize(string $filename, ImageReader $imageReader): ?array
31 {
32 $data = $imageReader->getImage($filename, 0, TypeJpeg::JPEG_MAX_HEADER_SIZE, false);
33
34 if ($data === false)
35 {
36 return null;
37 }
38
39 // Check if file is jpeg 2000
40 if (substr($data, 0, strlen(self::JPEG_2000_SIGNATURE)) !== self::JPEG_2000_SIGNATURE)
41 {
42 return null;
43 }
44
45 // Get SOC position before starting to search for SIZ.
46 // Make sure we do not get SIZ before SOC by cutting at SOC.
47 $data = substr($data, strpos($data, self::JPEG_2000_SOC_MARKER));
48
49 // Remove SIZ and everything before
50 $data = substr($data, strpos($data, self::JPEG_2000_SIZ_MARKER) + self::SHORT_SIZE);
51
52 // Acquire size info from data
53 $size = unpack('Nwidth/Nheight', substr($data, self::LONG_SIZE, self::LONG_SIZE * 2));
54 $size['type'] = IMAGETYPE_JPEG2000;
55
56 return $size;
57 }
58 }
59