Contao\CoreBundle\Image\PictureFactory::createConfig PHP Method

createConfig() private method

Creates a picture configuration.
private createConfig ( integer | array | null $size ) : array>\array
$size integer | array | null
return array>\array
    private function createConfig($size)
    {
        if (!is_array($size)) {
            $size = [0, 0, $size];
        }
        $config = new PictureConfiguration();
        $attributes = [];
        if (!isset($size[2]) || !is_numeric($size[2])) {
            $resizeConfig = new ResizeConfiguration();
            if (isset($size[0]) && $size[0]) {
                $resizeConfig->setWidth($size[0]);
            }
            if (isset($size[1]) && $size[1]) {
                $resizeConfig->setHeight($size[1]);
            }
            if (isset($size[2]) && $size[2]) {
                $resizeConfig->setMode($size[2]);
            }
            $configItem = new PictureConfigurationItem();
            $configItem->setResizeConfig($resizeConfig);
            if ($this->defaultDensities) {
                $configItem->setDensities($this->defaultDensities);
            }
            $config->setSize($configItem);
            return [$config, $attributes];
        }
        /** @var ImageSizeModel $imageSizeModel */
        $imageSizeModel = $this->framework->getAdapter(ImageSizeModel::class);
        $imageSizes = $imageSizeModel->findByPk($size[2]);
        $config->setSize($this->createConfigItem($imageSizes));
        if ($imageSizes && $imageSizes->cssClass) {
            $attributes['class'] = $imageSizes->cssClass;
        }
        /** @var ImageSizeItemModel $imageSizeItemModel */
        $imageSizeItemModel = $this->framework->getAdapter(ImageSizeItemModel::class);
        $imageSizeItems = $imageSizeItemModel->findVisibleByPid($size[2], ['order' => 'sorting ASC']);
        if (null !== $imageSizeItems) {
            $configItems = [];
            foreach ($imageSizeItems as $imageSizeItem) {
                $configItems[] = $this->createConfigItem($imageSizeItem);
            }
            $config->setSizeItems($configItems);
        }
        return [$config, $attributes];
    }