Блог Горошко Андрея 1C-Битрикс Обработка изображений в D7: Класс Bitrix\Main\File\Image

Обработка изображений в D7: Класс Bitrix\Main\File\Image

Средний рейтинг
Еще нет оценок

Для простого создания миниатюр в шаблонах идеально подходит CFile::ResizeImageGet.

Но если вам нужно наложить водяной знак, маску, повернуть изображение или сохранить результат в конкретный файл — используйте класс Bitrix\Main\File\Image.

1. Загрузка изображения

use Bitrix\Main\File\Image;
use Bitrix\Main\Application;

$docRoot = Application::getDocumentRoot();
$sourcePath = $docRoot . '/upload/original.jpg';

$image = new Image($sourcePath);

// Получаем информацию
$info = $image->getInfo(); // [width, height, format, ...]

2. Ресайз (Изменение размера)

use Bitrix\Main\File\Image;

// Пропорциональное уменьшение до 800x600
$image->resize(800, 600, Image::RESIZE_PROPORTIONAL);

// Точная обрезка (кроп) по центру
$image->resize(300, 300, Image::RESIZE_EXACT);

3. Наложение водяного знака (Watermark)

Это то, чего так не хватает в стандартном ResizeImageGet без модуля инфоблоков.

$watermarkPath = $docRoot . '/images/logo.png';
$watermark = new Image($watermarkPath);

// Накладываем водяной знак
// Параметры: (Image $watermark, $alpha, $position, $padding)
$image->drawWatermark(
    $watermark,
    0.5, // Прозрачность (0-1)
    Image::WATERMARK_POSITION_BOTTOM_RIGHT,
    10 // Отступ в пикселях
);

4. Сохранение результата

$destinationPath = $docRoot . '/upload/processed.jpg';

// Сохраняем с качеством 95%
$image->save($destinationPath, 95);

echo "Картинка обработана и сохранена!";

Использование маски

Можно сделать картинку круглой, наложив PNG-маску.

$maskPath = $docRoot . '/images/circle_mask.png';
$mask = new Image($maskPath);

$image->drawMask($mask);

Вывод:
Класс Bitrix\Main\File\Image — это мощная объектно-ориентированная обертка над библиотекой GD (или Imagick).

Он предоставляет удобный интерфейс для сложной обработки графики на сервере, позволяя решать задачи, недоступные стандартным хелперам Битрикс.

Bitrix\Main\File\Image, ресайз D7, водяной знак битрикс, обработка фото, resize, crop, mask, качество изображения.

Мой рейтинг:

Добавить комментарий

Related Post

Создание своего модуля в Битрикс: Структура, install/index.php и version.phpСоздание своего модуля в Битрикс: Структура, install/index.php и version.php

Средний рейтинг Еще нет оценок Модуль — это основной способ расширения функциональности Битрикс. Создание собственного модуля позволяет инкапсулировать бизнес-логику, компоненты, классы и административные страницы в единый, легко устанавливаемый пакет. Шаг

Современная работа с разделами инфоблоков: SectionTable::getList в Bitrix D7 ORMСовременная работа с разделами инфоблоков: SectionTable::getList в Bitrix D7 ORM

Средний рейтинг Еще нет оценок Продолжая осваивать D7 ORM, перейдем от элементов к разделам. Для работы с разделами инфоблоков в современном API предназначен класс \Bitrix\Iblock\SectionTable. Он предоставляет тот же мощный и