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 |
TypePsd.php
01 <?php
02
03 /**
04 * fast-image-size image type psd
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 TypePsd extends TypeBase
17 {
18 /** @var string PSD signature */
19 const PSD_SIGNATURE = "8BPS";
20
21 /** @var int PSD header size */
22 const PSD_HEADER_SIZE = 22;
23
24 /** @var int PSD dimensions info offset */
25 const PSD_DIMENSIONS_OFFSET = 14;
26
27 /**
28 * {@inheritdoc}
29 */
30 public function getSize(string $filename, ImageReader $imageReader): ?array
31 {
32 $data = $imageReader->getImage($filename, 0, self::PSD_HEADER_SIZE);
33
34 if ($data === false)
35 {
36 return null;
37 }
38
39 // Offset for version info is length of header but version is only a
40 // 16-bit unsigned value
41 $version = unpack('n', substr($data, self::LONG_SIZE, 2));
42
43 // Check if supplied file is a PSD file
44 if (!$this->validPsd($data, $version))
45 {
46 return null;
47 }
48
49 $size = unpack('Nheight/Nwidth', substr($data, self::PSD_DIMENSIONS_OFFSET, 2 * self::LONG_SIZE));
50 $size['type'] = IMAGETYPE_PSD;
51
52 return $size;
53 }
54
55 /**
56 * Return whether file is a valid PSD file
57 *
58 * @param string $data Image data string
59 * @param array $version Version array
60 *
61 * @return bool True if image is a valid PSD file, false if not
62 */
63 protected function validPsd(string $data, array $version): bool
64 {
65 return substr($data, 0, self::LONG_SIZE) === self::PSD_SIGNATURE && $version[1] === 1;
66 }
67 }
68