bitrix API images работа с изображениями

Home » Bitrix » bitrix API images работа с изображениями
Bitrix Комментариев нет

Уменьшение изображение по пути

$img = array('SRC' => $arResult['PROPERTIES']['FOTO_'.$i]['VALUE']); $file = CFile::MakeFileArray($img['SRC']); $thumb = array('SRC' => '/upload/tmp/thumb/'.$file['name']); $img_path = $_SERVER['DOCUMENT_ROOT'].$img['SRC']; $thumb_path = $_SERVER['DOCUMENT_ROOT'].$thumb['SRC']; if(is_file($img_path) && !is_file($thumb_path)){ CFile::ResizeImageFile($img_path, $thumb_path, array('width'=>112,'height'=>112), BX_RESIZE_IMAGE_PROPORTIONAL); }

Изменение размеров фотки и кеширование при выводе (рекомендуется, если превью соответствет детальной)

ResizeImageGet()

Копия фотки по url

CFile::MakeFileArray('http://pic.rutube.ru/video/6e/49/6e49e0a0999a901d910090a91b33d6cf.jpg');

Копия и изменение размеров фотки по url

$image_big = array('WIDTH' => 1250, 'HEIGHT' => 1250, 'METHOD' => 'resample', 'COMPRESSION' => 75); $arFields['DETAIL_PICTURE'] = CIBlock::ResizePicture(CFile::MakeFileArray(CFile::SaveFile(CFile::MakeFileArray($item['path']),'tmp')),$image_big); // сольет промежуточные сторонние фотки в папку tmp

Сохранить картинку в свойство элемента (update внутри)

$arImage = CFile::MakeFileArray('http://pic.rutube.ru/video/6e/49/6e49e0a0999a901d910090a91b33d6cf.jpg'); CIBlockElement::SetPropertyValuesEx($arItem['ID'], $arParams['IBLOCK_ID'], array('SCREENSHOT' => $arImage)); SCREENSHOT - код поля, если поле. PREVIEW_PICTURE должно работать, но не тестировали

Водяной знак для изображений товара

if(!empty($arResult['MORE_PHOTO'])){ $arFilters = Array( array("name" => "watermark", "position" => "mc", "size"=>"real", "alpha_level" => 45,"file"=>$_SERVER['DOCUMENT_ROOT']."/images/watermark.png") ); foreach($arResult['MORE_PHOTO'] as &$v){ if(!empty($v['WIDTH']) && $v['WIDTH'] < 270){ $arFilters[0]['file'] = $_SERVER['DOCUMENT_ROOT']."/images/watermark_s.png"; }else{ $arFilters[0]['file'] = $_SERVER['DOCUMENT_ROOT']."/images/watermark.png"; } $v = CFile::ResizeImageGet($v, array('width'=>1024,'height'=>1024), $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL, $bInitSizes = false, $arFilters); $v['SRC'] = $v['src']; }unset($v); } type => text выглядит херово и не обрабатывает alpha_level, поэтому лучше использовать пнг с текстом. + В документации ошибочно указан параметр path_to_font, следует использовать просто font

JPEGs progressive

\bitrix\modules\main\classes\general\file.php LINE 2110 function ResizeImageFile() (before imagejpeg()): imageinterlace($picture, true);