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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

TypeJp2.php

Zuletzt modifiziert: 01.05.2026, 11:27 - Dateigröße: 1.51 KiB


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