Since \Causal\Extractor\Service\Extraction\AbstractExtractionService::remapServiceOutput breaks upon a non-null$value, the exiftool value "ColorMode" = "Grayscale" is extracted and passed back to the TYPO3 metadata extraction service, where it is used as parameter for an INSERT INTO sys_file_metadata.
However, the sys_file_metadata.color_space field is a VARCHAR(4), and "Grayscale" does not fit, causing an error in strict mode.
Furthermore, "Grayscale" is an invalid value. According to SYSEXT:filemetadata/Configuration/TCA/Overrides/sys_file_metadata.php, the correct grayscale color_space value would be "grey".
Thus, ColorMode = "Grayscale" and ColorSpaceData = "GRAY" must be normalized to the value "grey".
To my mind, this should be handled by the ColorSpace utility, using a configuration like ...:
... and adjusting Causal\Extractor\Utility\ColorSpace::normalize to match on strings starting (lowercased) with "gray" or "grey" and replacing them with the canonical "grey" value.
exiftool -j
may extract"ColorMode"
and"ColorSpaceData"
values which are not fit to be placed intosys_file_metadata.color_space
unaltered.Example:
extractor
definescolor_space
mapping as follows:Since
\Causal\Extractor\Service\Extraction\AbstractExtractionService::remapServiceOutput
breaks upon a non-null
$value
, theexiftool
value"ColorMode" = "Grayscale"
is extracted and passed back to the TYPO3 metadata extraction service, where it is used as parameter for anINSERT INTO sys_file_metadata
.However, the
sys_file_metadata.color_space
field is aVARCHAR(4)
, and"Grayscale"
does not fit, causing an error in strict mode.Furthermore,
"Grayscale"
is an invalid value. According toSYSEXT:filemetadata/Configuration/TCA/Overrides/sys_file_metadata.php
, the correct grayscalecolor_space
value would be"grey"
.Thus,
ColorMode = "Grayscale"
andColorSpaceData = "GRAY"
must be normalized to the value"grey"
.To my mind, this should be handled by the
ColorSpace
utility, using a configuration like ...:... and adjusting
Causal\Extractor\Utility\ColorSpace::normalize
to match on strings starting (lowercased) with"gray"
or"grey"
and replacing them with the canonical"grey"
value.