ОбрабатываемаяКартинка.УстановитьРазмер

Методы · SetSize

Устанавливает новые размеры картинки. Если один из них не задан, то он будет рассчитан относительно другого с сохранением пропорции картинки.

Синтаксис

УстановитьРазмер(<Ширина>, <Высота>)
Полное описание, параметры и ограничения

ОбрабатываемаяКартинка.УстановитьРазмер (ProcessingPicture.SetSize)

ОбрабатываемаяКартинка (ProcessingPicture)

УстановитьРазмер (SetSize)

Доступен, начиная с версии 8.3.14.

Синтаксис:
УстановитьРазмер(<Ширина>, <Высота>)
Параметры:

<Ширина> (необязательный)
Тип: Число.
Устанавливаемая ширина картинки.

<Высота> (необязательный)
Тип: Число.
Высота картинки в пикселях.
Описание:

Устанавливает новые размеры картинки. Если один из них не задан, то он будет рассчитан относительно другого с сохранением пропорции картинки.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.3.14.

Методическая информация

Практические примеры

Сохранить пропорции при одном размере и увидеть отличие двух явных размеров

УстановитьРазмер принимает пиксели, а не проценты. Пропущенная сторона рассчитывается пропорционально; обе заданные стороны могут изменить пропорции.

Где и как запускать

Полный серверный общий модуль своей учебной конфигурации. Картинки только в памяти.

Подготовка

  1. В отдельной своей конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеКартинки с флагом Сервер. Вставьте весь код одного урока и вызовите УчебныеКартинки.ВыполнитьПример() из серверной команды своей обработки.

  2. Встроенный собственный PNG имеет 80×40 пикселей: белое поле, синий прямоугольник 40×20 с красной рамкой, начинающийся в точке 20,10. Фотографии, подписи, печати и документы пользователей не используются.

  3. Картинки создаются из Base64 в памяти. Методы изменения меняют ОбрабатываемаяКартинка, а не исходный Картинка. ПолучитьКартинку создаёт отдельный результат; результаты не записываются на диск или в базу.

  4. Основные уроки выполняйте на настольном сервере 1С 8.5.1.1343, не на мобильной платформе. Там другие ограничения форматов, метаданных цвета и плотности.

  5. Последний урок — отдельный клиентский обработчик команды своей управляемой формы: он нужен для ФильтрИменФайлов и чтения устаревшего API, не для серверной обработки.

Процедура ВыполнитьПример() Экспорт
    Исходная = Новый Картинка(Base64Значение("iVBORw0KGgoAAAANSUhEUgAAAFAAAAAoCAIAAADmAupWAAAAX0lEQVR4nO3YURGAMAxEwYhAROUgu66KCIZmuO6bE5D9Ta3DqnVYwOkBpwecHnB6r8BzjJZ1gq97bh4wMDAwMDAwMDAwMDAwMDDw1+CzXjx/DDg94PSA0wNOr7oP2N0DKcWmInx+weoAAAAASUVORK5CYII="));
    Если Исходная.Ширина() <> 80 ИЛИ Исходная.Высота() <> 40 Тогда
        ВызватьИсключение "Собственный PNG должен быть 80 на 40 пикселей";
    КонецЕсли;
    Обработка = Новый ОбрабатываемаяКартинка(Исходная);
    Обработка.УстановитьРазмер(40);
    ПоШирине = Обработка.ПолучитьКартинку();
    Сообщить(ПоШирине.Ширина() = 40 И ПоШирине.Высота() = 20);
    Обработка.УстановитьРазмер(, 10);
    ПоВысоте = Обработка.ПолучитьКартинку();
    Сообщить(ПоВысоте.Ширина() = 20 И ПоВысоте.Высота() = 10);
    Обработка.УстановитьРазмер(30, 30);
    Квадрат = Обработка.ПолучитьКартинку();
    Сообщить(Квадрат.Ширина() = 30 И Квадрат.Высота() = 30);
    Сообщить(Исходная.Ширина() = 80 И Исходная.Высота() = 40);
    Сообщить(ПоШирине.Ширина() = 40 И ПоШирине.Высота() = 20);
КонецПроцедуры

Разбор по шагам

  1. Передать только ширину 40: высота становится 20, отношение сторон 2:1 сохраняется.

  2. Пропустить первый параметр и задать высоту 10: ширина текущего изображения станет 20.

  3. Задать ширину и высоту 30: результат квадратный, первоначальные пропорции не сохраняются.

  4. Проверить, что первая полученная копия и исходная картинка не стали квадратными.

Как проверить результат

  1. Пять сообщений Истина: 40×20, 20×10, 30×30 и сохранность двух ранее полученных объектов.

  2. После двух первых уменьшений отношение ширины к высоте 2:1; у последнего результата 1:1.

Ожидаемый результат

Разница пропорционального уменьшения и принудительного размера проверяется числами, не только на глаз.

На что обратить внимание

  1. Пиксельные размеры изображения не равны Ширина/Высота элемента формы в символах и строках.

  2. Увеличение числа пикселей не восстановит отсутствующие детали исходного рисунка.

  3. Не используйте ноль или отрицательный размер как способ очистить картинку.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.