Проект имеет следующие премущества:
- Не требует установки на каждом компьютере, где будет осуществляться обработка картинок
- Прекрасно работает даже с большими изображениями
- Скорость работы выше примерно на 40%
- Имеет малое потребление памяти
- Может работать на сервере
Демонстрация работы
Общие сведения
GGraphics – внешняя компонента для работы с картинками из 1С. Может использоваться для конвертации из одного формата в другой, получения изображения из буфера обмена, изменения размера изображения, поворота (отражения), обрезки, получения размеров, добавления водяного знака, сжатия.
Поддерживаемые операционные системы:
Windows XP, Windows 7,8,10 (x86,x64), Windows Server (x86,x64)
Работает в режимах:
Толстый клиент, Тонкий клиент, Сервер
Поддерживается работа со следующими форматами:
В режиме открытия:
- bmp
- jpg
- png
- gif
- tiff
В режиме сохранения:
- bmp
- jpg
- png
- tiff
Форматы «водяного знака»:
- bmp
- jpg
- png
- gif
Описание свойств и методов
Свойства:
РазмерИзображения/ ImageSize – размер текущего изображения в формате "Ширина"x"Высота"(например, 300x550). Тип: Строка - Только чтение
Ширина/Width – ширина текущего изображения. Тип: Строка - Только чтение
Высота/Height – высота текущего изображения. Тип: Строка - Только чтение
Формат/Format – формат текущего изображения. Тип: Строка - Только чтение
КоличествоКадров/FrameCount – количество кадров для gif и tiff. Тип: Число - Только чтение
ДвоичныеДанные/ BinaryData – файл в формате jpg без сжатия. Тип: ДвоичныеДанные - Только чтение
Base64 – файл в формате jpg без сжатия представленный в виде строки Base64. Тип: Строка - Чтение и запись
ОписаниеОшибки / ErrorDescription - в случае возникновения ошибки, содержит её описание.
Методы:
1) ПолучитьИзображение / GetImage – получает изображение для обработки (конвертации) из файла или буфера обмена.
Параметры:
- ИмяФайла - имя открываемого для редактирования файла. Если имя файла пустое, то изображение берется из буфера обмена. Тип: Строка
2) ПолучитьДвоичныеДанные / GetBinaryData – возвращает двоичные данные изображения в указанном формате
Параметры:
- ТипФайла – формат файла, в котором необходимо вернуть двоичные данные. Тип: Число
Принимает следующие значения:
- 0 – bmp
- 1 – jpg
- 2 – png
- 3 - tif
3) ПолучитьBase64 / GetBase64 – возвращает данные изображения в указанном формате в виде строки Base64
Параметры:
- ТипФайла – формат файла, в котором необходимо вернуть данные ихображения. Тип: Число
Принимает следующие значения:
- 0 – bmp
- 1 – jpg
- 2 – png
- 3 – tif
4) ОбрезатьИзображение / CropImage – обрезает изображение на указанную величину.
Параметры:
- Лево - количество пикселей (процентов), обрезаемых слева. Тип: Число
- Право - количество пикселей (процентов), обрезаемых справа. Тип: Число
- Верх - количество пикселей (процентов), обрезаемых сверху. Тип: Число
- Низ - количество пикселей (процентов), обрезаемых снизу. Тип: Число
- ВПроцентах – признак того, что все величины указаны в процентах. Тип: Булево (для 7.7 - 0 и 1)
5) ОбрезатьПустыеКрая / CropEmptyBorders – обрезает пустые (прозрачные) края изображения.
Параметры:
- Отступ - количество пикселей, оставляемых в качестве отступа. Тип: Число
6) ПовернутьИзображение / RotateImage – поворачивает (отражает) текущее изображение.
Параметры:
- ОтразитьПоГоризонтали – признак того, что изображение необходимо отразить по горизонтали. Тип: Булево
- ОтразитьПоВертикали - признак того, что изображение необходимо отразить по вертикали. Тип: Булево
- Поворот – поворот изображения (-1 – на 90 градусов против часовой, 1 – на 90 градусов по часовой). Тип: Число
7) ИзменитьРазмерИзображения / ResizeImage – изменяет размер изображения.
Параметры:
- Ширина – новая ширина для изображения. Тип: Число
- Высота – новая высота для изображения. Тип: Число
- Процент – процент на который изменяется размер (если число отрицательное – уменьшение изображения, если положительное - увеличение). Тип: Число
- СохранятьПропорции – признак того, что при изменении размера необходимо сохранить пропорции изображения. Если указано, что необходимо сохранить пропорции, то методу передается только один из параметров (либо шинира, либо высота), а второй параметр принимает нулевое значение. Тип: Булево (для 7.7 - 0 и 1).
8) ДобавитьВодянойЗнак / AddWatermark – добавляет на текущее изображение «водяной знак».
Параметры:
- ИмяФайла – файл, который будет использоваться в качестве водяного знака. Тип: Строка
- Позиция – позиция на текущем изображении, где необходимо разместить водяной знак. Тип: Число
Принимает следующие значения:
0 – сверху слева
1 – сверху центр
2 – сверху справа
3 – по центру
4 – снизу слева
5 – снизу центр
6 – снизу справа
- Прозрачность – процент прозрачности накладываемого изображения. Изменяется от 0 до 100. При 100 – изображение непрозрачно. Тип: Число
9) РазмытиеПоГауссу/ GaussianBlur – применяет к текущему изображению эффект «РазмытиеПоГауссу».
Параметры:
- Радиус – радиус размытия от 0 до 500. Тип: Число
10) НерезкоеМаскирование/ UnsharpMask – применяет к текущему изображению эффект «Нерезкое маскирование».
Параметры:
- Радиус – радиус размытия от 0 до 500. Тип: Число
- Интенсивность – интенсивность эффекта от 0 до 500. Тип: Число
- Порог – порог срабатывания от 0 до 255. Тип: Число
11) УвеличитьРезкость/ Sharpen – увеличивает резкость текущего изображения.
Параметры:
- Интенсивность – интенсивность эффекта от 0 до 100. Тип: Число
12) СделатьЧерноБелым / CreateBlackAndWhite – делает текущее изображение черно-белым (оттенки серого)
Параметры: Нет
13) Сепия/ Sepia – применяет к текущему изображению эффект «Сепия».
Параметры:
- Интенсивность – интенсивность эффекта от 0 до 255. Тип: Число
14) ЗаполнитьПрозрачность / FillTransparent – заполняет прозрачные участки текущего изображения заданным цветом.
Параметры:
- R – интенсивность красного цвета от 0 до 255. Тип: Число
- G – интенсивность зеленого цвета. Тип: Число
- B – интенсивность синего цвета. Тип: Число
- СохранятьПолупрозрачность – при заполнении полупрозрачные участки будут залиты указанным цветом, но степень их прозрачности будет сохранена. Тип: Булево
15) УстановитьЦветТекста / SetTextColor – задает цветовые параметры для текста, добавляемого на изображение методом ДобавитьТекст / AddText.
Параметры:
- R – интенсивность красного цвета от 0 до 255. Тип: Число
- G – интенсивность зеленого цвета. Тип: Число
- B – интенсивность синего цвета. Тип: Число
- A – интенсивность альфа-канала (прозрачность) от 0 до 255. Тип: Число
16) УстановитьПараметрыТекста / SetTextParams – задает параметры шрифта для текста, добавляемого на изображение методом ДобавитьТекст / AddText.
Параметры:
- ИмяШрифта – имя шрифта, установленного в системе. Тип: Строка
- РазмерШрифта – размер шрифта в пунктах. Тип: Число
- Жирный – признак полужирного шрифта. Тип: Булево
- Курсив – наклонный шрифт. Тип: Булево
- Подчеркнутый –подчеркнутый шрифт. Тип: Булево
17) ДобавитьТекст / AddText – добавляет на текущее изображение заданный текст.
Параметры:
- X – координата по X для добавляемого текста. Тип: Число
- Y – координата по Y для добавляемого текста. Тип: Число
- Текст – текст, добавляемый на изображение. Тип: Строка
18) УстановитьТекущийКадр / SetAvtiveFrame – меняет текущий активный кадр изображения (для форматов gif и tiff).
Параметры:
- НомерКадра – номер кадра изображения, который необходимо сделать активным. Тип: Число
19) СохранитьИзображения / SaveImage – сохраняет изображение в файл на диске.
Параметры:
- ИмяФайла – имя файла для сохранения на диске. Тип: Строка
- ТипФайла – формат сохраняемого файла. Тип: Число
Принимает следующие значения:
- 0 – bmp
- 1 – jpg
- 2 – png
- 3 - tif
- Сжатие – степень сжатия для файлов формата jpg. Тип: Число
- УдалятьОригинал – признак того, что необходимо удалить оригинальный файл. Требуется, например, при конвертации из одного формата в другой. Тип: Булево (для 7.7 - 0 и 1)
20) ИзменитьЯркость / ChangeBrightness – меняет яркость текущего изображения.
Параметры:
- Яркость – значение яркости от -100 до 100. Тип: Число
21) ИзменитьКонтрастность / ChangeContrast – меняет контрастность текущего изображения.
Параметры:
- Контрастность – значение контрастности от -100 до 100. Тип: Число
22) Закрыть / Close – высвобождает память, занимаемую текущим изображением.
Примеры кода
1) Обработка изображения на сервере
&НаСервере
Функция СоздатьМиниатюру(ИсходныйФайл, ВыходнойФайл)
ВысотаМиниатюры = 100;
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаGGraphics", "Graphics", ТипВнешнейКомпоненты.Native);
Если ПодключениеВыполнено Тогда
GGraphics = Новый("AddIn.Graphics.GGraphics");
GGraphics.ПолучитьИзображение(ИмяФайла);
GGraphics.ИзменитьРазмерИзображения(0 , ВысотаМиниатюры, 0, Истина);
GGraphics.СохранитьИзображение(ВыходнойФайл, 1, 100, Ложь);
GGraphics.Закрыть();
КонецЕсли;
КонецФункции
2) Обработка изображения на клиенте
&НаКлиенте
Функция ВозможноНанестиВодянойЗнак()
РасположениеКомпоненты = "ОбщийМакет.КомпонентаGGraphics";
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту(РасположениеКомпоненты, "Graphics", ТипВнешнейКомпоненты.Native);
Если НЕ ПодключениеВыполнено Тогда
УстановитьВнешнююКомпоненту(РасположениеКомпоненты);
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту(РасположениеКомпоненты, "Graphics", ТипВнешнейКомпоненты.Native);
КонецЕсли;
Возврат;
КонецФункции
&НаКлиенте
Процедура НанестиВодянойЗнак(ИмяФайла, ФайлВодяногоЗнака)
Если ВозможноНанестиВодянойЗнак() Тогда
GGraphics = Новый("AddIn.Graphics.GGraphics");
GGraphics.ПолучитьИзображение(ИмяФайла);
GGraphics.ДобавитьВодянойЗнак(ФайлВодяногоЗнака, 3, 100);
GGraphics.СохранитьИзображение(ИмяФайла, 1, 100, Ложь);
GGraphics.Закрыть();
КонецЕсли;
КонецПроцедуры
3) Обработка исключений
Попытка
GGraphics.ПолучитьИзображение(ИмяФайла);
Исключение
Сообщить(ОписаниеОшибки() + ": " + GGraphics.ОписаниеОшибки, СтатусСообщения.Внимание);
КонецПопытки
Демонстрационная версия
В демонстрационной версии продукта только одно ограничение - все получаемые изображения имеют по центру надпись "DEMO".
Техническая поддержка
Срок бесплатной технической поддержки составляет 12 месяцев, начиная с даты приобретения продукта.