Задать вопрос
@photosho

Как правильно масштабировать изображение при добавлении элемента инфоблока?

Пытаюсь изменить размер изображения "PREVIEW_PICTURE" при добавлении элемента инфоблока:

AddEventHandler('iblock', 'OnAfterIBlockElementAdd', 'OnAfterIBlockElementAddHandler');

function OnAfterIBlockElementAddHandler(&$arFields){
	CModule::IncludeModule('iblock');
	
	CAllFile::resizeImage(
		$arFields['PREVIEW_PICTURE'],
		['width' => 405, 'height' => 300],
		BX_RESIZE_IMAGE_PROPORTIONAL
	);
}


Изображение остается неизменным. Что я делаю не так?
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
@PetrPo
В вопросе не уточняется, что речь о CSV импорте.
Нужно поставить галку
60a286a1158ba173845142.jpeg
Ответ написан
Комментировать
@photosho Автор вопроса
Проблему решил, не знаю, насколько правильным способом. Такое ощущение, что изменения в массиве "PREVIEW_PICTURE" в "arFields" события не влияют на изображение. Сделал так:

$file = CFile::resizeImageGet(
  $arFields['PREVIEW_PICTURE_ID'],
  ['width' => 405, 'height' => 300],
  BX_RESIZE_IMAGE_PROPORTIONAL
);

$file['del'] = 'Y';

$fields = [
  'PREVIEW_PICTURE' => CFile::makeFileArray($file['src'])
];

$el = new CIBlockElement;
$el->update($arFields['ID'], $fields);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
надо куда то сохранить результат
Ответ написан
Anadi
@Anadi
Если ответ Вам помог мой, решением отметье его!
$arTmpImage = \CFile::ResizeImageGet(
            $itemPhoto["ID"],
            ["width" => 405, "height" => 300],
            BX_RESIZE_IMAGE_PROPORTIONAL, true,
            ["name" => "sharpen", "precision" => 100]
        );


Дальше разберётесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы