|
Выборка данных элементов номенклатуры по которым есть картинки | ☑ | ||
---|---|---|---|---|
0
falselight
06.07.20
✎
10:29
|
Управление нашей фирмой, редакция 1.6 (1.6.13.60).
Подскажите пожалуйста, как правильно сделать выборку номенклатуры, у которой загружены картинки? Сделал такой запрос, выборка есть. ВЫБРАТЬ Номенклатура.Ссылка КАК НоменклатураСсылка, Номенклатура.ФайлКартинки КАК ФайлКартинки, Номенклатура.ФайлКартинки.Наименование КАК ФайлКартинкиНаименование, Номенклатура.ФайлКартинки.ВладелецФайла КАК ФайлКартинкиВладелецФайла ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.ФайлКартинки.Наименование ЕСТЬ NULL |
|||
1
Aleksey
06.07.20
✎
10:30
|
А картинка где лежит? Судя по ФайлКартинки.ВладелецФайла - это отдельный справочник, вот по нему и выбирай
|
|||
2
falselight
06.07.20
✎
10:33
|
Так же вот из другого справочника выбирать можно, -
ВЫБРАТЬ НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка, НоменклатураПрисоединенныеФайлы.Наименование КАК Наименование, НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка КАК ВладелецФайлаСсылка, НоменклатураПрисоединенныеФайлы.ВладелецФайла.Наименование КАК ВладелецФайлаНаименование, НоменклатураПрисоединенныеФайлы.Размер КАК Размер, НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу ИЗ Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы Сама задача в том что бы ограничивать загрузку изображений в номенклатуру до 5 мб. Пытаюсь вот пока запросами, увидеть то что есть. И если в этом втором запросе открывать НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка, То режим предприятия вылетает. Выходит предварительно сообщение, что нельзя отдельно открывать этот справочник http://joxi.ru/bmo5Q4kU9bzpkA . (1) Текущий способ хранения файлов в каталоге на диске http://joxi.ru/bmo5Q4kU9bzpkA . |
|||
3
falselight
06.07.20
✎
10:35
|
В настройках конфигурации УНФ нет же установки ограничения на размер загружаемых файлов?
Буду сейчас смотреть как это можно сделать при загрузке, наверное. |
|||
4
Aleksey
06.07.20
✎
10:38
|
"ограничивать загрузку изображений в номенклатуру до 5 мб." - это же типовая фишка БСП, неужели в УНФ ее выкасили?
|
|||
5
Aleksey
06.07.20
✎
10:39
|
или тебе исключительно в номенклатуру, а в остальные справочники документы пусть хоть видеоролики грузят?
|
|||
6
falselight
06.07.20
✎
10:40
|
(5) Посмотрел внимательнее сейчас. Оказывается мне нужно изменять размер у существующих фотографий.
Которые загружены в номенклатуру. |
|||
7
Aleksey
06.07.20
✎
10:43
|
Проверил - нет не выкосили
Компания->Администрирование->Работа с файлами. Под галкой "хранить файлы в томах на дисках указывам "максимальный размер файлов" (6) Так если они у тебя на дисках тупо возъми все фотки пожамкай на диске, или там еще что то? А так НоменклатураПрисоединенныеФайлы.ПутьКФайлу - но там помоему без адреса тома, т.е. еще нужен путь который в томе указан. Ну, если том один, то тупо адрес из него используй как префикс вместе с ПутьКФайлу и будет тебе адрес. |
|||
8
falselight
06.07.20
✎
10:45
|
Как можно искать файл на диске, если там забит такой адрес?
20190624\K8123COL857.jpg (7) ПутьКФайлу там подобные значения 20190624\K8123COL857.jpg |
|||
9
Tatitutu
06.07.20
✎
10:46
|
"Сжиматель" картинок в базе
https://clck.ru/PUV6j |
|||
10
Aleksey
06.07.20
✎
10:46
|
(8) см том, там начала адреса
|
|||
11
falselight
06.07.20
✎
10:51
|
(10) Ок. Вижу что хранится в Том, Там Том1 и открывается Том хранения файлов.
То есть на диске есть подобные каталоги. Как то можно делать изменение размеров из 1с? Так как нужна обработка . |
|||
12
falselight
06.07.20
✎
10:52
|
(9) А если они хранятся в базе и нужно для этого обработку сделать?
|
|||
13
Aleksey
06.07.20
✎
10:55
|
(11) Вот в настройках том1 есть реквизит путь - это и есть начала адреса
|
|||
14
falselight
06.07.20
✎
10:58
|
(13) Да я понял. Там разные файлы вижу есть.
И есть файлы, например размер которых 7081608. Вот подобные мне видимо нужно привести к размеру 4900000. Обдумываю как это можно сделать в самой обработке. |
|||
15
Aleksey
06.07.20
✎
11:01
|
(14) Ну так у тебя в (9) готовое решение. Бери и адаптируй под себя. Смотри как там жамкают и делай по аналогии
|
|||
16
falselight
06.07.20
✎
11:18
|
(15) Есть примеры работы с изображениями на других источниках.
Эта же продается. И код там закрытый будет. да и покупать мне не нужно, а нужно самому сделать. Говорят нужна библиотека http://vbnet.mvps.org/files/updates/wiaautsdk.zip скачал, но как её регистрировать не знаю. Права на это нужны. |
|||
17
Aleksey
06.07.20
✎
11:24
|
(16) В (9) автор можешь у него спросить код открыт или нет, а не гадать
|
|||
18
falselight
06.07.20
✎
11:24
|
Поискал, способы есть разные. Мне это не известно все. Какой лучше и какой правильнее работает.
|
|||
19
falselight
06.07.20
✎
11:25
|
(17) Я не собираюсь ничего покупать.
Мне нужно сделать самому обработку для изменения размера картинок. Которые сейчас хранятся на диске. |
|||
20
falselight
06.07.20
✎
11:54
|
Кто либо делал подобное?
Например можно использовать из кода программу IrfanView . Еще есть несколько разных вариантов. То есть из 1с выборка картинок, у которых размер более 5000000 байт, то есть больше 5 Мб. Далее нужно использовать метод изменения размера на 4900000 байт к примеру, на 4,9 Мб. И получения нового пути, к измененному файлу, что бы записать в свойства. Может кто нибудь, подскажет, как это сейчас правильнее сделать? На сервере ОС Windows server 2008R2 Enterprise< Service Pack 1. Так как если какой то метод использовать нужно знать какие dll там зарегистрированы. Или искать какой то универсальный способ, изменения размеров картинок из 1с независимо. |
|||
21
Aleksey
06.07.20
✎
11:54
|
сыр бор из-за 300 рублей? Ну ок не буду мешать самому пистаь
|
|||
22
falselight
06.07.20
✎
12:00
|
(21) Причем тут сыр бор?????? С какой стати покупать нужно что то по 300р для того что бы что то сделать?????
Хоть 10. Какая разница ???? |
|||
23
falselight
06.07.20
✎
12:01
|
(21) Примеров и так полно, зачем что то покупать?
|
|||
24
Tatitutu
06.07.20
✎
12:29
|
(22) никто тебе и не собирался ничего продавать
там по ссылке есть развернутый пример смысл выгружаешь все свои картинки куда нибудь в папку берешь стороннюю программку их в сети большой выбор (в т.ч и бесплатных) указываешь папку и параметры (размер, расширение, разрешение) программа их обрабатывает. А ты загружаешь обратно в базу уже сжатые. |
|||
25
falselight
06.07.20
✎
12:40
|
(24) Ок. Сейчас буду смотреть искать.
Вот я выбрал, изображения которые нужно изменить. Возможно дозадам сейчас ещё фильтр на расширение. Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка, | НоменклатураПрисоединенныеФайлы.Наименование КАК НаименованиеИзображения, | НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка КАК ВладелецФайлаСсылка, | НоменклатураПрисоединенныеФайлы.ВладелецФайла.Наименование КАК ВладелецФайлаНаименование, | НоменклатураПрисоединенныеФайлы.Размер КАК Размер, | НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу, | НоменклатураПрисоединенныеФайлы.ВладелецФайла.ФайлКартинки КАК ВладелецФайлаФайлКартинки, | НоменклатураПрисоединенныеФайлы.Том.ПолныйПутьWindows КАК ТомПолныйПутьWindows |ИЗ | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы"; Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда Выборка = Рез.Выбрать(); н = 1; Пока Выборка.Следующий() Цикл Если Выборка.Размер >= 5000000 Тогда Сообщить(СТРОКА(н) +"). "+ Выборка.ВладелецФайлаНаименование +", pic: "+ Выборка.НаименованиеИзображения + " size: " + Выборка.Размер); н = н + 1; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
26
falselight
06.07.20
✎
12:43
|
(24) картинки хранятся в каталоге. Там и нужно их менять.
Где увидеть только этот развернутый пример. Скачал, там конфигурация. Какие программы брать и как запускать тоже не ясно (. Я разбираюсь. Ищу информацию. Буду благодарен за пример который можно было бы попробовать. Что бы изменить размеры. |
|||
27
sitex
naïve
06.07.20
✎
12:50
|
(26) Ну если картинки в каталоге причем тут 1С ? Сжимай все что в каталоге этом.
|
|||
28
sitex
naïve
06.07.20
✎
12:50
|
(26) + К примеру тем же Fastone Image Viewer. Может запустить на ночь от сожмет все по твоим выставленным параметрам.
|
|||
29
falselight
06.07.20
✎
13:05
|
(27) (28) Работаю по формулировке задачи. С обратной связью проблема. Да хранится все в каталогах.
(9) (21) Это скачал и развернул. Вот сейчас хочу разобраться как что сделать. |
|||
30
falselight
06.07.20
✎
13:07
|
(9) В этом примере. только производят выгрузку картинок. но как произвести само их изменение, желательно в коде 1с ???
Там они пользуются какой то сторонней программой. |
|||
31
falselight
06.07.20
✎
13:10
|
(9) не нашел как там посмотреть код что отвечает за обработку изменений изображений, это какая то сторонняя обработка и её можно видимо только купить.
|
|||
32
Fram
06.07.20
✎
13:19
|
(31) подсказка. Из 1с можно запускать другие программы указав параметры.
|
|||
33
falselight
06.07.20
✎
13:20
|
(28) А что для изменения размера использовать в 1с?
там в каталоге на диске какая то структура, там разное. Если это можно сделать из 1с, то как? Вот я получил набор изображений которые нужно изменять, в выборке, как пройти дальше? После (25) ? |
|||
34
falselight
06.07.20
✎
13:21
|
(32) Я понимаю. Но какие например?
(24) Как вот это сделать? указываешь папку и параметры (размер, расширение, разрешение) программа их обрабатывает. А ты загружаешь обратно в базу уже сжатые. Где взять какой либо мануал? |
|||
35
sitex
naïve
06.07.20
✎
13:22
|
(34) К прмиеру ImageMagick
|
|||
36
sitex
naïve
06.07.20
✎
13:25
|
(34) Как пример https://habr.com/ru/post/351014/
|
|||
37
falselight
06.07.20
✎
13:27
|
Пробую вот этот пример. На первой строке выходит сообщение об ошибке.
&НаКлиенте Процедура ТЕСТ(Команда) objImageFile = Новый COMОбъект("WIA.ImageFile");//objImageFile objImageProcess = Новый COMОбъект("WIA.ImageProcess"); objImageFile.LoadFile("C:\1.bmp"); //блок чисто инфу выводит, можно удалить+ Сообщить("Width "+objImageFile.Width); Сообщить("Height "+objImageFile.Height); Сообщить("PixelDepth "+objImageFile.PixelDepth); Сообщить("HorizontalResolution "+objImageFile.HorizontalResolution); Сообщить("VerticalResolution "+objImageFile.VerticalResolution); Сообщить("FrameCount "+objImageFile.FrameCount); Если objImageFile.IsAnimated Тогда Сообщить("Анимированная"); Иначе Сообщить("НЕ Анимированная"); КонецЕсли; //блок чисто инфу выводит, можно удалить- objImageProcess.Filters.Add(objImageProcess.FilterInfos("Scale").FilterID); objImageProcess.Filters.Item(1).Properties.Item("MaximumWidth").Value = 50; objImageProcess.Filters.Item(1).Properties.Item("MaximumHeight").Value = 50; objImageFile = objImageProcess.Apply(objImageFile); objImageFile.SaveFile("C:\2.bmp"); КонецПроцедуры http://joxi.ru/v29ve64TzbxyvA |
|||
38
falselight
06.07.20
✎
13:28
|
(36) Остается узнать, как этим пользоваться из 1с. все же не все так просто там.
|
|||
39
sitex
naïve
06.07.20
✎
13:31
|
(38) Чего там не просто ? установил все что нужно. Батники готовые. Под себя собрал - про тестил. Если как говоришь что обратная связь плоха и установить не получиться сторонние приложение тогда это не твой вариант.
|
|||
40
falselight
06.07.20
✎
13:33
|
Пробую такой пример, но тут ошибки в коде что ли
Перем WshShell; Попытка WshShell = Новый COMОбъект("WScript.Shell"); WshShell.CurrentDirectory = КаталогПрограммы(); Исключение СообщитьОбОшибке("Невозможно подключить модуль выполнения скриптов", Неопределено, СтатусСообщения.ОченьВажное); Возврат Ложь; КонецПопытки; WshShell.Run(""""+КаталогПрограммы()+"convert.exe"" """СтароеИмя+""""+ -filter Mitchell -resize "+Картинки_Ширина+"x"+Картинки_Высота+" "+ """"+НовоеИмяФайла+"""",0,-1); |
|||
41
falselight
06.07.20
✎
13:34
|
(39) Что бы взять проверить что либо из 1с, пока такого не вижу ничего ( .
|
|||
42
falselight
06.07.20
✎
13:35
|
(39) Что например установить нужно? Что бы что то попробовать хотя бы.
|
|||
43
sitex
naïve
06.07.20
✎
13:51
|
(37) Я тут не увижу сжатие файла , вижу только что размер рисунка изменит.
|
|||
44
sitex
naïve
06.07.20
✎
13:58
|
(42) Установить все как написано в статье в (36) .
|
|||
45
sitex
naïve
06.07.20
✎
13:59
|
(40) Я не пойму ты зачем режешь размеры картинки ? тебе сжать или изменить размер надо ?
|
|||
46
sitex
naïve
06.07.20
✎
14:00
|
(40) -filter Lanczos -define jpeg:dct-method=float -quality 55 -gaussian-blur 0.05 вот примерно так сожмет файл рисунка
|
|||
47
sitex
naïve
06.07.20
✎
14:02
|
+(46) для jpeg, PNG другие параметры.
|
|||
48
falselight
06.07.20
✎
14:04
|
(45) То есть на размер изображения нужно сжимать не меняя размер?
Возможно не понимаю, не каждый день нужно размер менять. |
|||
49
falselight
06.07.20
✎
14:05
|
На это, выходят ошибки. не знаю как проверить.
WshShell.Run(""""+КаталогПрограммы()+"convert.exe"" """+СтароеИмя+""""+ "-filter Mitchell -resize "+Картинки_Ширина+"x"+Картинки_Высота+" "+ """"+НовоеИмяФайла+"""",0,-1); {ВнешняяОбработка.ИзменениеРазмеровФотографий_0_1.Форма.Форма.Форма(76,57)}: Переменная не определена (СтароеИмя) WshShell.Run(""""+КаталогПрограммы()+"convert.exe"" """+<<?>>СтароеИмя+""""+ (Проверка: Тонкий клиент) {ВнешняяОбработка.ИзменениеРазмеровФотографий_0_1.Форма.Форма.Форма(77,49)}: Переменная не определена (Картинки_Ширина) "-filter Mitchell -resize "+<<?>>Картинки_Ширина+"x"+Картинки_Высота+" "+ (Проверка: Тонкий клиент) {ВнешняяОбработка.ИзменениеРазмеровФотографий_0_1.Форма.Форма.Форма(77,69)}: Переменная не определена (Картинки_Высота) "-filter Mitchell -resize "+Картинки_Ширина+"x"+<<?>>Картинки_Высота+" "+ (Проверка: Тонкий клиент) {ВнешняяОбработка.ИзменениеРазмеровФотографий_0_1.Форма.Форма.Форма(78,26)}: Переменная не определена (НовоеИмяФайла) """"+<<?>>НовоеИмяФайла+"""",0,-1); (Проверка: Тонкий клиент) {ВнешняяОбработка.ИзменениеРазмеровФотографий_0_1.Форма.Форма.Форма(72,5)}: Процедура или функция с указанным именем не определена (СообщитьОбОшибке) <<?>>СообщитьОбОшибке("Невозможно подключить модуль выполнения скриптов", Неопределено, СтатусСообщения.ОченьВажное); (Проверка: Тонкий клиент) |
|||
50
falselight
06.07.20
✎
14:06
|
не понимаю короче что нужно мне делать.
|
|||
51
sitex
naïve
06.07.20
✎
14:06
|
(49) Ты прикалываешься так ? :)
|
|||
52
acht
06.07.20
✎
14:08
|
Вот интересно. Если ТС забанили в гугле и на всех учебных курсах, то почему еще не забанили здесь?
|
|||
53
falselight
06.07.20
✎
14:08
|
(51) Я говорю что мне не понятно что делать, Я не вижу примера который можно попробовать.
Мысли разбежались, и я не знаю что делать. Я не прикалываюсь. Я таким никогда не занимаюсь. |
|||
54
falselight
06.07.20
✎
14:09
|
(52) Я сам забанюсь придет время.
|
|||
55
Lexey_
06.07.20
✎
14:15
|
(52) неоднократно: LivingStar
|
|||
56
acht
06.07.20
✎
14:15
|
(54) Не забудь, пожалуйста, спросить на форуме как это сделать.
|
|||
57
sitex
naïve
06.07.20
✎
14:16
|
(53) Установить ImageMagick-7.0.10-Q16-HDRI.
|
|||
58
falselight
06.07.20
✎
14:19
|
(39) Я обработку могу проверить у себя на компе, и установить тогда все что нужно.
Подскажите тогда, пожалуйста, по коду, который можно проверить. |
|||
59
falselight
06.07.20
✎
14:35
|
Ставлю, что бы начать тестирование.
C:\Program Files\ImageMagick-7.0.10-Q16-HDRI |
|||
60
falselight
06.07.20
✎
14:37
|
Я поставил C:\Program Files\ImageMagick-7.0.10-Q16-HDRI как мне ее запускать из 1с ?
|
|||
61
falselight
06.07.20
✎
14:39
|
(57) Подскажите пожалуйста дальше? После установки?
есть выборка с нужными данными (25) как использовать указанную программу? |
|||
62
sitex
naïve
06.07.20
✎
14:45
|
(61) Примерно так --->>> СтароеИмя="D:\1.jpeg";
НовоеИмяФайла ="D:\2.jpeg"; ЗапуститьПриложение("""C:\Program Files\ImageMagick-7.0.10-Q16-HDRI\convert.exe"" """+СтароеИмя+""""+" -filter Lanczos -define jpeg:dct-method=float -quality 75 -gaussian-blur 0.05 "+""""+НовоеИмяФайла+"""",,истина); |
|||
63
falselight
06.07.20
✎
14:48
|
Ещё попробую (37) зарегистрировал библиотеку у себя.
На сервере вроде как тоже можно будет. Если и установить потом можно будет. Поставил (57) буду пробовать ваш код (62). Остается узнать как делать размер файла 4,9 мб. Не больше 5 мб то есть. Спасибо, за пример, продвигаюсь в решении. |
|||
64
sitex
naïve
06.07.20
✎
14:57
|
(63) для Jpeg , можно указать параметр -interlace JPEG. Прогрессивный JPEG вроде как
|
|||
65
falselight
06.07.20
✎
15:12
|
(64) Судя по выборке с указаниями расширений изображений, там только Jpg и png
буду пробовать ваш пример. Пока вот иcпользовал (37) он сработал. Файл в 87,7 кб этот код уменьшил до 1,34 кб. Соответственно и само изображение меньше стало. В этом коде что то не так? И подскажите как правильно выявлять что бы менять размер на 4,9 Мб, если он превышает 5 мб ? &НаКлиенте Процедура ТЕСТ(Команда) objImageFile = Новый COMОбъект("WIA.ImageFile");//objImageFile objImageProcess = Новый COMОбъект("WIA.ImageProcess"); objImageFile.LoadFile("D:\2020_07_06\ИзменениеКартинки\1.jpg"); //блок чисто инфу выводит, можно удалить+ Сообщить("Width "+objImageFile.Width); Сообщить("Height "+objImageFile.Height); Сообщить("PixelDepth "+objImageFile.PixelDepth); Сообщить("HorizontalResolution "+objImageFile.HorizontalResolution); Сообщить("VerticalResolution "+objImageFile.VerticalResolution); Сообщить("FrameCount "+objImageFile.FrameCount); Если objImageFile.IsAnimated Тогда Сообщить("Анимированная"); Иначе Сообщить("НЕ Анимированная"); КонецЕсли; //блок чисто инфу выводит, можно удалить- objImageProcess.Filters.Add(objImageProcess.FilterInfos("Scale").FilterID); objImageProcess.Filters.Item(1).Properties.Item("MaximumWidth").Value = 50; objImageProcess.Filters.Item(1).Properties.Item("MaximumHeight").Value = 50; objImageFile = objImageProcess.Apply(objImageFile); objImageFile.SaveFile("D:\2020_07_06\ИзменениеКартинки\2.jpg"); КонецПроцедуры |
|||
66
sitex
naïve
06.07.20
✎
15:16
|
Стал размером по указаным параметрам. 50 на 50;
objImageProcess.Filters.Item(1).Properties.Item("MaximumWidth").Value = 50; objImageProcess.Filters.Item(1).Properties.Item("MaximumHeight").Value = 50; |
|||
67
Aleksey
06.07.20
✎
15:18
|
да уж...
|
|||
68
falselight
06.07.20
✎
15:18
|
||||
69
sitex
naïve
06.07.20
✎
15:23
|
(63) Вообщее если надо подогнать под размер в ImageMagick есть параметр -define jpeg:extent={size}.
|
|||
70
sitex
naïve
06.07.20
✎
15:23
|
почитайте на https://imagemagick.org/script/command-line-processing.php там много чего есть.
|
|||
71
falselight
06.07.20
✎
15:24
|
(66) Пока не понимаю можно ли использовать пример (65)
И если его использовать то как выравнивать значения размеров, до 4,9 Мб при условии если размер будет превышать 5 мб. В базе вот такие размеры файлов jpg и png и больше. до 43 066 247. Ну то есть любые могут быть. Как вот пример (37) правильно заставить уменьшать размер ??? |
|||
72
falselight
06.07.20
✎
15:25
|
(71+) От 5 003 366 до 43 066 247
|
|||
73
sitex
naïve
06.07.20
✎
15:25
|
(68) а галку при установке поставили 5-ую с верху ?
|
|||
74
falselight
06.07.20
✎
15:26
|
(73) Запущу сейчас ещё раз инсталлятор тогда. Видимо нет.
|
|||
75
falselight
06.07.20
✎
15:28
|
(73) ставлю http://joxi.ru/l2ZZ8O1cEn9lw2
|
|||
76
sitex
naïve
06.07.20
✎
15:32
|
(69) Это опять же только для JPEG параметр --> -define jpeg:extent=5017kb , опять же тут зависит от других параметров , надо их тоже не забывать. Так можно все рисунки запороть.
|
|||
77
falselight
06.07.20
✎
15:38
|
(76) Стоит дорабатывать пример 2 видимо. Так как доделывать пример 1 не совсем понятно
Подскажите пожалуйста, учитывая что у меня расширения jpg и png, как там что нужно менять для них ????? Задача в том что если размер больше 5000000 я все эти изображения выбираю. и должен привести к 4900000 &НаКлиенте Процедура ТЕСТ(Команда) // ПРИМЕР 1 //objImageFile = Новый COMОбъект("WIA.ImageFile");//objImageFile //objImageProcess = Новый COMОбъект("WIA.ImageProcess"); //objImageFile.LoadFile("D:\2020_07_06\ИзменениеКартинки\1.jpg"); ////блок чисто инфу выводит, можно удалить+ //Сообщить("Width "+objImageFile.Width); //Сообщить("Height "+objImageFile.Height); //Сообщить("PixelDepth "+objImageFile.PixelDepth); //Сообщить("HorizontalResolution "+objImageFile.HorizontalResolution); //Сообщить("VerticalResolution "+objImageFile.VerticalResolution); //Сообщить("FrameCount "+objImageFile.FrameCount); //Если objImageFile.IsAnimated Тогда //Сообщить("Анимированная"); //Иначе //Сообщить("НЕ Анимированная"); //КонецЕсли; ////блок чисто инфу выводит, можно удалить- //objImageProcess.Filters.Add(objImageProcess.FilterInfos("Scale").FilterID); //objImageProcess.Filters.Item(1).Properties.Item("MaximumWidth").Value = 50; //objImageProcess.Filters.Item(1).Properties.Item("MaximumHeight").Value = 50; //objImageFile = objImageProcess.Apply(objImageFile); //objImageFile.SaveFile("D:\2020_07_06\ИзменениеКартинки\2.jpg"); // // ПРИМЕР 2 СтароеИмя = "D:\2020_07_06\ИзменениеКартинки\1.jpg"; НовоеИмяФайла = "D:\2020_07_06\ИзменениеКартинки\2.jpg"; ЗапуститьПриложение("""C:\Program Files\ImageMagick-7.0.10-Q16-HDRI\convert.exe"" """+СтароеИмя+""""+" -filter Lanczos -define jpeg:dct-method=float -quality 75 -gaussian-blur 0.05 "+""""+НовоеИмяФайла+"""",,истина); КонецПроцедуры |
|||
78
falselight
06.07.20
✎
15:40
|
Пример (77) изменил файл с размера 87,7 кб до 45,9 кб
|
|||
79
sitex
naïve
06.07.20
✎
15:45
|
(77) Под каждое расширение файла запускаешь со своими параметрами ImageMagick. Качество и размер файла определи на тестовых файлах. про PNG почитать манулы.
|
|||
80
falselight
06.07.20
✎
15:49
|
(79) Ок, спасибо большое.
Нужно тогда мне сейчас экспериментировать с размерами. Прояснится ли что, так как все же сложновато все под вечер. Сейчас остается тогда понять как запускать для jpg и png. С какими параметрами, и что бы размер становился 4,9 мб. |
|||
81
falselight
06.07.20
✎
15:50
|
(80) Так как в выборке все размера больше 5 мб идут.
Потом уже прочая обработка. |
|||
82
sitex
naïve
06.07.20
✎
15:51
|
(36) здесь все расписано прям очень подробно.
|
|||
83
sitex
naïve
06.07.20
✎
15:52
|
(80) Можно просто батник сделать и запустить его из 1С , который сам выберет и по размеру , и по расширению и в кривь и кось).
|
|||
84
falselight
06.07.20
✎
15:54
|
(83) Хотя бы вот так сделать как есть пока. То есть есть выборка которая все размеры больше 5 мб, ставит к 4,9 мб.
(82) Спасибо буду изучать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |