Как в 1С изменить размер графического изображения, картинки
Обычные формы;
В 1С отсутствуют какие-либо методы для обработки изображений, поэтому здесь не обойтись без использования сторонней программы. Я предложу одно из решений данной задачи, на мой взгляд очень удобное. Я буду использовать внешнюю компоненту GraphicsNET, про которую можно более подробно прочитать и скачать ее на сайте разработчика, перейдя по указанной ссылке. Значит, качаем архив с файлами компоненты, распаковываем и регистрируем ее в Windows, запустив файл reg.bat.
Теперь в 1с пропишем программный код для решения поставленной задачи:
Процедура ИзменитьРазмерИзображения()
Попытка
ПодключитьВнешнююКомпоненту("AddIn.GraphicsNET");
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Попытка
GraphicsVK = Новый("AddIn.GraphicsNET");
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
ПолныйПутьКИсходномуИзображению = "D:\Photo\1.jpg"; // указываем путь к исходному изображению в формате .jpg и с наименованием "1"
ПолныйПутьКИзмененномуИзображению = "D:\Photo\2.jpg"; // указываем путь, где сохранится измененное изображение в формате .jpg и с наименованием "2"
Если НайтиФайлы(ПолныйПутьКИсходномуИзображению).Количество() <> 0 Тогда
GraphicsVK.ПолучитьИзображение(ПолныйПутьКИсходномуИзображению);
// Для примера, уменьшим пропорционально размер исходного изображения таким образом, чтобы длина наибольшей стороны
//стала равна 2048 пикселей, либо оставим изображение в первоначальном размере, если длины всех его сторон меньше 2048 пикселей
Если GraphicsVK.Высота > 2048 Или GraphicsVK.Ширина > 2048 ТогдаМетод ИзменитьРазмерИзображения(Ширина, Высота, Процент, СохранятьПропорции) - изменяет размер изображения. Принимает параметры:
Если GraphicsVK.Высота > GraphicsVK.Ширина Тогда
GraphicsVK.ИзменитьРазмерИзображения(0, 2048, 0, Истина);
Иначе
GraphicsVK.ИзменитьРазмерИзображения(2048, 0, 0, Истина);
КонецЕсли;
КонецЕсли;
GraphicsVK.СохранитьИзображение(ПолныйПутьКИзмененномуИзображению, 1, 0, Ложь);
КонецЕсли;
КонецПроцедуры
Ширина – новая ширина для изображения. Тип: Число;
Высота – новая высота для изображения. Тип: Число;
Процент – процент на который изменяется размер (если число отрицательное – уменьшение изображения, если положительное — увеличение). Тип: Число;
СохранятьПропорции – признак того, что при изменении размера необходимо сохранить пропорции изображения. Если указано, что необходимо сохранить пропорции, то методу передается только один из параметров (либо ширина, либо высота), а второй параметр принимает нулевое значение. Тип: Булево.
Метод СохранитьИзображения(ИмяФайла, ТипФайла, Сжатие, УдалятьОригинал) – сохраняет изображение в файл на диске. Принимает параметры:
ИмяФайла – имя файла для сохранения на диске. Тип: Строка;
ТипФайла – формат сохраняемого файла. Тип: Число. Возможные значения: 0 – bmp, 1 – jpg, 2 – png;
Сжатие – степень сжатия для файлов формата jpg. Тип: Число;
УдалятьОригинал – признак того, что необходимо удалить оригинальный файл. Требуется, например, при конвертации из одного формата в другой. Тип: Булево.