|
Изменить разрешение/размер изображения в командной строке/средствами 1С. |
☑ |
0
cube033
26.04.13
✎
09:15
|
За недолгий опыт 1с программирования и общения на Мисте - успел поверить, что решить можно любую задачу. Это такая приятная мысль, и неужели в этой ситуации никак не обойтись без откровенных костылей?
Полную задачу описывать не буду. Но одна из подзадач - администрировать БД сайта из 8.1 УПП. Подподзадача - работать с изображениями номенклатуры.
Добавлен механизм присваивания нескольких изображений, благодаря Мисте красиво открывается/закрывается SSH туннель, Все изображения сразу отправляются по FTP на сервер,а адреса картинок в БД сайта. Но со стороны изготовителя сайта, поступило довольно логичное предложение: "Почему бы не выгружать по ФТП сразу Превьюшки?"
Да только где их взять? Знаете ли вы способ, как программно создать уменьшенную копию изображения? Может утилитки какие-нибудь?
Знаю, что похожая тема уже была, но там одна толковая ссылка, но по ней только реклама, да вирусы (все поудалял, но до сих пор раз в час ссылки в браузере произвольно открываются)
|
|
1
Godofsin
26.04.13
✎
09:16
|
погугли внешние компоненты, их куча всяких по работе с изображением
|
|
2
Wobland
26.04.13
✎
09:17
|
ЗапуститьПриложение тебе в помощь
|
|
3
Wobland
26.04.13
✎
09:17
|
или КомандаСистемы
|
|
4
cube033
26.04.13
✎
11:35
|
Решено!!!
Скачиваем и устанавливаем GFLAx.(Я качал отсюда:
Регистрируем в Windows. У меня возникала ошибка, в поддержке Майкрософт прочитал, что dll нужно класть сюда: C:\Windows\SysWOW64 - естественно нужно учитывать ОС - у меня Windows8x64.
Открываем CMD.exe с правами администратора и набираем: regsrv32 C:\Windows\SysWOW64\GFLAx.dll
А дальше все просто - комплекте с программой идет полезный Хелп со свойствами и методами на Англ.
В моем примере задача, чтобы ни одно измерение превьюшки не превышало 250 пикселей.
ИмяФайла = "C:\Users\cube0_000\Pictures\images\komp.jpg";
GFLAx = Новый COMОбъект("GFLAx.GFLAx");
GFLAx.LoadBitmap(ИмяФайла);
ШиринаИзо = GFLAx.Width;
ВысотаИзо = GFLAx.Height;
Если ШиринаИзо>ВысотаИзо Тогда
Делитель=ШиринаИзо/250;
Иначе
Делитель=ВысотаИзо/250;
КонецЕсли;
Делитель = ?(0,1,Делитель);
ШиринаИзо = ШиринаИзо/Делитель;
ВысотаИзо = ВысотаИзо/Делитель;
GFLAx.Resize(Цел(ШиринаИзо),Цел(ВысотаИзо));
GFLAx.SaveBitmap("C:\Users\cube0_000\Pictures\images\komp303.jpg");
|
|
5
oleg_km
26.04.13
✎
11:53
|
Есть еще WIA
|
|
6
эцп
26.04.13
✎
11:59
|
Есть еще ImageMagic
|
|
7
palpetrovich
26.04.13
✎
12:10
|
(4) а это "Делитель = ?(0,1,Делитель);" вообще работает?
|
|
8
palpetrovich
26.04.13
✎
12:14
|
+7 работает блин, ...и нафига я пишу "Делитель = ?(Делитель=0,1,Делитель)"
|
|