From cda7fb706b91ce11e8b2a0b753280105a5eb9e30 Mon Sep 17 00:00:00 2001 From: ericek111 Date: Wed, 8 Sep 2021 17:12:26 +0200 Subject: [PATCH 1/2] Fix sRGB chunk crashing the lib, default to 'Unknown' --- src/PNGMetadata.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PNGMetadata.php b/src/PNGMetadata.php index cef77a9..2a8e6e6 100644 --- a/src/PNGMetadata.php +++ b/src/PNGMetadata.php @@ -448,7 +448,7 @@ private function extractRBG(): void if (isset($this->chunks['sRGB'])) { $rbg = ['Perceptual', 'Relative Colorimetric', 'Saturation', 'Absolute Colorimetric']; $unpacked = unpack('C', $this->chunks['sRGB']); - $this->metadata['sRBG'] = $rbg[end(...$unpacked)]; + $this->metadata['sRBG'] = $rbg[end($unpacked)] ?? 'Unknown'; } } From 70ac261a9c304cf7ec173bdaa3192ae1d3c3e003 Mon Sep 17 00:00:00 2001 From: ericek111 Date: Wed, 8 Sep 2021 17:17:38 +0200 Subject: [PATCH 2/2] Change all references of 'RBG' to '(s)RGB' --- README.md | 2 +- src/PNGMetadata.php | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1df7164..d805adf 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ echo $png_metadata->get('exif:DateTime'); // Return a value, a array or false. ### Example 3 - Types -Print the metadata types (IHDR, SRBG, BKGD, EXIF, XMP, CRS, DATE, DC, ICC, AUX, ...). +Print the metadata types (IHDR, sRGB, BKGD, EXIF, XMP, CRS, DATE, DC, ICC, AUX, ...). ```php $png_metadata = new PNGMetadata('./Path/Photo.png'); diff --git a/src/PNGMetadata.php b/src/PNGMetadata.php index 2a8e6e6..70e617b 100644 --- a/src/PNGMetadata.php +++ b/src/PNGMetadata.php @@ -26,7 +26,7 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * PNG Metadata class for extraction of XMP, TEXIF, EXIF, BKGD, RBG and IHDR. + * PNG Metadata class for extraction of XMP, TEXIF, EXIF, BKGD, sRGB and IHDR. * * Returns the complete information found in the different types * of metadata within a PNG format image. @@ -91,7 +91,7 @@ public function __construct(string $path) $this->extractTExif(); $this->extractExif(); $this->extractBKGD(); - $this->extractRBG(); + $this->extractRGB(); $this->extractIHDR(); ksort($this->metadata); @@ -438,17 +438,17 @@ private function extractBKGD(): void /** - * Extract RBG type from sRBG chunk as a array. + * Extract RGB type from sRGB chunk as a array. * * @see PNGMetadata::$metadata For the property whose metadata are storage. * @see PNGMetadata::$chunks For the property whose chunks data are storage. */ - private function extractRBG(): void + private function extractRGB(): void { if (isset($this->chunks['sRGB'])) { - $rbg = ['Perceptual', 'Relative Colorimetric', 'Saturation', 'Absolute Colorimetric']; + $rgb = ['Perceptual', 'Relative Colorimetric', 'Saturation', 'Absolute Colorimetric']; $unpacked = unpack('C', $this->chunks['sRGB']); - $this->metadata['sRBG'] = $rbg[end($unpacked)] ?? 'Unknown'; + $this->metadata['sRGB'] = $rgb[end($unpacked)] ?? 'Unknown'; } }