Class from Bitrix API save remote image, resize & add watermark, return id image from b_file
table of false.
["name" => "watermark", "position" => "center", "file" => "FILE_PATH"];
- BX_RESIZE_IMAGE_EXACT
- BX_RESIZE_IMAGE_PROPORTIONAL
- BX_RESIZE_IMAGE_PROPORTIONAL_ALT
More details ResizeImageGet
If you need to get the file ID
include_once('remoteimagesaver.php');
$MainPictureUrl = 'https://cbu01.alicdn.com/img/ibank/O1CN01Ey8nb326WubqZsCiZ_!!2244787670-0-cib.jpg';
if ($id = RemoteImageSaver::save(
$MainPictureUrl,
800, 800, false,
BX_RESIZE_IMAGE_EXACT,
[
"name" => "watermark",
"position" => "center",
"file" => $_SERVER['DOCUMENT_ROOT'] . '/upload/wm.png'
])) {
$file = \CFile::GetFileArray($id);
echo "<img src=\"$file[SRC] \"/>";
}
If you need to add a file to an element
use \Bitrix\Main;
use \Bitrix\Main\Loader;
Loader::includeModule('iblock');
include_once('remoteimagesaver.php');
$MainPictureUrl = 'https://cbu01.alicdn.com/img/ibank/O1CN01Ey8nb326WubqZsCiZ_!!2244787670-0-cib.jpg';
$makeFileArray = RemoteImageSaver::save(
$MainPictureUrl,
400, 400, true,
BX_RESIZE_IMAGE_EXACT,
[
"name" => "watermark",
"position" => "center",
"file" => $_SERVER['DOCUMENT_ROOT'] . '/upload/wm.png'
]);
if (!empty($makeFileArray)) {
$el = new \CIBlockElement;
$arFields = Array(
"CODE" => 'test',
"IBLOCK_ID" => 2,
"IBLOCK_SECTION_ID" => 247,
"PROPERTY_VALUES" => [],
"NAME" => 'Test',
"ACTIVE" => "Y",
"PREVIEW_TEXT" => "",
"DETAIL_TEXT" => '',
"DETAIL_TEXT_TYPE" => 'html',
"DETAIL_PICTURE" => $makeFileArray
);
if ($id = $el->Add($arFields)) {
echo "Success add element #$id";
} else {
echo $el->LAST_ERROR;
}
self::remove($makeFileArray['TRASH']);
}