gifts2017

Edit Pictures - Программа для поворота картинок на определенный угол (с параметрами запуска)

Опубликовал F L (fierylions) в раздел Программирование - Практика программирования

Программа для поворота картинок под определенный угол.

Бывает, нужно повернуть картинку под определенный угол (для вывода в печатные формы или ранее отсканированные документы под другим углом).
Сначала для поворота картинки я использовал com объект "wia.imagefile", но столкнулся с тем, что не на всех серверах присутствует данная dll (Ссылка на публикацию).
Для случаев, когда нет возможности зарегистрировать dll, но есть права запуска приложений, написал программу на C#, которая может поворачивать как одно конкретное изображение, так и множество из выбранной папки.
Для того, чтобы было удобно работать с ней программно, добавил параметры запуска - смотрите на фото №2.
Выглядит это так:
Вставляем программу в макет обработки как двоичные данные. Далее рабочий код:

//Закидываем в модуль менеджера встроенной обработки, чтобы можно было обращаться не создавая экземпляра обработки (Обработки.ПовернутьКартинку.ПовернутьКартинкуЧерезEditPictures())
Функция ПовернутьКартинкуЧерезEditPictures(УголПоварота,ФайлИлиПапка,ПутьИсточник,ПутьПриемник,TimeOut = Неопределено) Экспорт 

//TimeOut - Через сколько секунд программа должна закрыться принудительно.

Попытка
//Получаем программу в виде двоичных даннх
НашаПрограмма = ПолучитьМакет("EditPictures");

//Определяем путь с уникальным именем файла
ПутьКПРограмме = КаталогВременныхФайлов()+"EditPictures_"+Строка(Новый УникальныйИдентификатор)+".exe";

//Сохраняем программу по определенному выше пути
НашаПрограмма.Записать(ПутьКПРограмме);

//Определяем ком объект "WScript.Shell" 
WshShell = Новый COMОбъект("WScript.Shell");
//Выполняем команду запуска программы с переданными выше параметрами
WshShell.Run(ПутьКПРограмме +" """+УголПоварота+""""+" """+ФайлИлиПапка+""""+" """+ПутьИсточник+""""+" """+ПутьПриемник+""""+" """+TimeOut+"""",0,Истина);

//После выполнения программа "EditPictures" сама себя удалит!

//Уничтожаем переменную "WshShell"
WshShell = Неопределено;

УспешноОбработано = Истина;
Исключение
УспешноОбработано = Ложь;
КонецПопытки; 

Возврат Новый Структура("УспешноОбработано,Путь",УспешноОбработано,ПутьПриемник);

КонецФункции

Файл перезалит: 

Изменения для режима запуска программы с внешними параметрами:

а. Добавлен новый параметр TimeOut  идет после последнего параметра на скрине. Измеряется в секундах.

Так же пишем все в кавычках. Обозначает время когда программа принудительно завершится (полезно если по каким то причинам зависла). По умолчанию TimeOut= 120сек.

б. Добавлено самоудаление программы из сохраненного каталога при завершении. Даже после выполнении программы 1С не может удалить ее т.к. она занята. По этому и появилась необходимость создания самоудаления.


Для работы программы нужен net framework (обычно в windows установлен по умолчанию).
Можно скачать отсюда http://net-framework.ru (качаем последнюю версию на данный момент).

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Edit Pictures
.zip 123,30Kb
24.02.16
4
.zip 123,30Kb 4 Скачать

См. также

Автор запретил комментарии