protected function getConfigurationItem($imageSize)
{
$configItem = new PictureConfigurationItem();
$resizeConfig = new ResizeConfiguration();
$mode = $imageSize->resizeMode;
if (substr_count($mode, '_') === 1) {
$importantPart = $this->image->setImportantPart(null)->getImportantPart();
$mode = explode('_', $mode);
if ($mode[0] === 'left') {
$importantPart['width'] = 1;
} elseif ($mode[0] === 'right') {
$importantPart['x'] = $importantPart['width'] - 1;
$importantPart['width'] = 1;
}
if ($mode[1] === 'top') {
$importantPart['height'] = 1;
} elseif ($mode[1] === 'bottom') {
$importantPart['y'] = $importantPart['height'] - 1;
$importantPart['height'] = 1;
}
$this->image->setImportantPart($importantPart);
$mode = ResizeConfiguration::MODE_CROP;
}
$resizeConfig->setWidth($imageSize->width)->setHeight($imageSize->height)->setZoomLevel($imageSize->zoom);
if ($mode) {
$resizeConfig->setMode($mode);
}
$configItem->setResizeConfig($resizeConfig);
if (isset($imageSize->sizes)) {
$configItem->setSizes($imageSize->sizes);
}
if (isset($imageSize->densities)) {
$configItem->setDensities($imageSize->densities);
}
if (isset($imageSize->media)) {
$configItem->setMedia($imageSize->media);
}
return $configItem;
}