Вход | Регистрация
 

Выборка данных элементов номенклатуры по которым есть картинки

Выборка данных элементов номенклатуры по которым есть картинки
Я
   falselight
 
06.07.20 - 10:29
Управление нашей фирмой, редакция 1.6 (1.6.13.60).

Подскажите пожалуйста, как правильно сделать выборку номенклатуры, у которой загружены картинки?

Сделал такой запрос, выборка есть.

ВЫБРАТЬ
    Номенклатура.Ссылка КАК НоменклатураСсылка,
    Номенклатура.ФайлКартинки КАК ФайлКартинки,
    Номенклатура.ФайлКартинки.Наименование КАК ФайлКартинкиНаименование,
    Номенклатура.ФайлКартинки.ВладелецФайла КАК ФайлКартинкиВладелецФайла
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    НЕ Номенклатура.ФайлКартинки.Наименование ЕСТЬ NULL
   Aleksey
 
1 - 06.07.20 - 10:30
А картинка где лежит? Судя по ФайлКартинки.ВладелецФайла - это отдельный справочник, вот по нему и выбирай
   falselight
 
2 - 06.07.20 - 10:33
Так же вот из другого справочника выбирать можно, -

ВЫБРАТЬ
    НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка,
    НоменклатураПрисоединенныеФайлы.Наименование КАК Наименование,
    НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка КАК ВладелецФайлаСсылка,
    НоменклатураПрисоединенныеФайлы.ВладелецФайла.Наименование КАК ВладелецФайлаНаименование,
    НоменклатураПрисоединенныеФайлы.Размер КАК Размер,
    НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу
ИЗ
    Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы


Сама задача в том что бы ограничивать загрузку изображений в номенклатуру до 5 мб.
Пытаюсь вот пока запросами, увидеть то что есть. И если в этом втором запросе открывать НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка,

То режим предприятия вылетает. Выходит предварительно сообщение, что нельзя отдельно открывать этот справочник http://joxi.ru/bmo5Q4kU9bzpkA .  


(1) Текущий способ хранения файлов в каталоге на диске http://joxi.ru/bmo5Q4kU9bzpkA  .
   falselight
 
3 - 06.07.20 - 10:35
В настройках конфигурации УНФ нет же установки ограничения на размер загружаемых файлов?

Буду сейчас смотреть как это можно сделать при загрузке, наверное.
   Aleksey
 
4 - 06.07.20 - 10:38
"ограничивать загрузку изображений в номенклатуру до 5 мб." - это же типовая фишка БСП, неужели в УНФ ее выкасили?
   Aleksey
 
5 - 06.07.20 - 10:39
или тебе исключительно в номенклатуру, а в остальные справочники документы пусть хоть видеоролики грузят?
   falselight
 
6 - 06.07.20 - 10:40
(5) Посмотрел внимательнее сейчас. Оказывается мне нужно изменять размер у существующих фотографий.
Которые загружены в номенклатуру.
   Aleksey
 
7 - 06.07.20 - 10:43
Проверил - нет не выкосили
Компания->Администрирование->Работа с файлами. Под галкой "хранить файлы в томах на дисках указывам "максимальный размер файлов"

(6) Так если они у тебя на дисках тупо возъми все фотки пожамкай на диске, или там еще что то?
А так НоменклатураПрисоединенныеФайлы.ПутьКФайлу - но там помоему без адреса тома, т.е. еще нужен путь который в томе указан. Ну, если том один, то тупо адрес из него используй как префикс вместе с  ПутьКФайлу и будет тебе адрес.
   falselight
 
8 - 06.07.20 - 10:45
Как можно искать файл на диске, если там забит такой адрес?


20190624\K8123COL857.jpg

(7) ПутьКФайлу там подобные значения  20190624\K8123COL857.jpg
   Tatitutu
 
9 - 06.07.20 - 10:46
"Сжиматель" картинок в базе
https://clck.ru/PUV6j
   Aleksey
 
10 - 06.07.20 - 10:46
(8) см том, там начала адреса
   falselight
 
11 - 06.07.20 - 10:51
(10) Ок. Вижу что хранится в Том, Там Том1 и открывается Том хранения файлов.

То есть на диске есть подобные каталоги.

Как то можно делать изменение размеров из 1с? Так как нужна обработка .
   falselight
 
12 - 06.07.20 - 10:52
(9) А если они хранятся в базе и нужно для этого обработку сделать?
   Aleksey
 
13 - 06.07.20 - 10:55
(11) Вот в настройках том1 есть реквизит путь - это и есть начала адреса
   falselight
 
14 - 06.07.20 - 10:58
(13) Да я понял. Там разные файлы вижу есть.
И есть файлы, например размер которых 7081608.

Вот подобные мне видимо нужно привести к размеру 4900000.

Обдумываю как это можно сделать в самой обработке.
   Aleksey
 
15 - 06.07.20 - 11:01
(14) Ну так у тебя в (9) готовое решение. Бери и адаптируй под себя. Смотри как там жамкают и делай по аналогии
   falselight
 
16 - 06.07.20 - 11:18
(15) Есть примеры работы с изображениями на других источниках.

Эта же продается. И код там закрытый будет. да и покупать мне не нужно, а нужно самому сделать.

Говорят нужна библиотека http://vbnet.mvps.org/files/updates/wiaautsdk.zip

скачал, но как её регистрировать не знаю. Права на это нужны.
   Aleksey
 
17 - 06.07.20 - 11:24
(16) В (9) автор можешь у него спросить код открыт или нет, а не гадать
   falselight
 
18 - 06.07.20 - 11:24
Поискал, способы есть разные. Мне это не известно все. Какой лучше и какой правильнее работает.
   falselight
 
19 - 06.07.20 - 11:25
(17) Я не собираюсь ничего покупать.
Мне нужно сделать самому обработку для изменения размера картинок.
Которые сейчас хранятся на диске.
   falselight
 
20 - 06.07.20 - 11:54
Кто либо делал подобное?

Например можно использовать из кода программу IrfanView .

Еще есть несколько разных вариантов. То есть из 1с выборка картинок, у которых размер более 5000000 байт, то есть больше 5 Мб.

Далее нужно использовать метод изменения размера на 4900000 байт к примеру, на 4,9 Мб. И получения нового пути, к измененному файлу, что бы записать в свойства.

Может кто нибудь, подскажет, как это сейчас правильнее сделать? На сервере ОС Windows server 2008R2 Enterprise< Service Pack 1.
Так как если какой то метод использовать нужно знать какие dll там зарегистрированы.

Или искать какой то универсальный способ, изменения размеров картинок из 1с независимо.
   Aleksey
 
21 - 06.07.20 - 11:54
сыр бор из-за 300 рублей? Ну ок не буду мешать самому пистаь
   falselight
 
22 - 06.07.20 - 12:00
(21) Причем тут сыр бор?????? С какой стати покупать нужно что то по 300р для того что бы что то сделать?????
Хоть 10. Какая разница ????
   falselight
 
23 - 06.07.20 - 12:01
(21) Примеров и так полно, зачем что то покупать?
   Tatitutu
 
24 - 06.07.20 - 12:29
(22) никто тебе и не собирался ничего продавать
там по ссылке есть развернутый пример
смысл выгружаешь все свои картинки куда нибудь в папку
берешь стороннюю программку их в сети большой выбор (в т.ч и бесплатных)
указываешь папку и параметры (размер, расширение, разрешение)
программа их обрабатывает. А ты загружаешь обратно в базу уже сжатые.
   falselight
 
25 - 06.07.20 - 12:40
(24) Ок. Сейчас буду смотреть искать.
Вот я выбрал, изображения которые нужно изменить. Возможно дозадам сейчас ещё фильтр на расширение.


    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ
        |    НоменклатураПрисоединенныеФайлы.Ссылка                        КАК Ссылка,
        |    НоменклатураПрисоединенныеФайлы.Наименование                КАК НаименованиеИзображения,
        |    НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка        КАК ВладелецФайлаСсылка,
        |    НоменклатураПрисоединенныеФайлы.ВладелецФайла.Наименование КАК ВладелецФайлаНаименование,
        |    НоменклатураПрисоединенныеФайлы.Размер                        КАК Размер,
        |    НоменклатураПрисоединенныеФайлы.ПутьКФайлу                    КАК ПутьКФайлу,
        |    НоменклатураПрисоединенныеФайлы.ВладелецФайла.ФайлКартинки КАК ВладелецФайлаФайлКартинки,
        |    НоменклатураПрисоединенныеФайлы.Том.ПолныйПутьWindows      КАК ТомПолныйПутьWindows
        |ИЗ
        |    Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы";
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        н = 1;
        Пока Выборка.Следующий() Цикл
            Если Выборка.Размер >= 5000000 Тогда
                Сообщить(СТРОКА(н) +"). "+ Выборка.ВладелецФайлаНаименование +", pic: "+ Выборка.НаименованиеИзображения + " size: " + Выборка.Размер);
                н = н + 1;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
   falselight
 
26 - 06.07.20 - 12:43
(24) картинки хранятся в каталоге. Там и нужно их менять.

Где увидеть только этот развернутый пример. Скачал, там конфигурация.

Какие программы брать и как запускать тоже не ясно (. Я разбираюсь. Ищу информацию.

Буду благодарен за пример который можно было бы попробовать. Что бы изменить размеры.
   sitex
 
27 - 06.07.20 - 12:50
(26) Ну если картинки в каталоге причем тут 1С ? Сжимай все что в каталоге этом.
   sitex
 
28 - 06.07.20 - 12:50
(26) + К примеру тем же Fastone Image Viewer. Может запустить на ночь от сожмет все по твоим выставленным параметрам.
   falselight
 
29 - 06.07.20 - 13:05
(27) (28) Работаю по формулировке задачи. С обратной связью проблема. Да хранится все в каталогах.

(9) (21) Это скачал и развернул. Вот сейчас хочу разобраться как что сделать.
   falselight
 
30 - 06.07.20 - 13:07
(9) В этом примере. только производят выгрузку картинок. но как произвести само их изменение, желательно в коде 1с ???

Там они пользуются какой то сторонней программой.
 
 Рекламное место пустует
   falselight
 
31 - 06.07.20 - 13:10
(9) не нашел как там посмотреть код что отвечает за обработку изменений изображений, это какая то сторонняя обработка и её можно видимо только купить.
   Fram
 
32 - 06.07.20 - 13:19
(31) подсказка. Из 1с можно запускать другие программы указав параметры.
   falselight
 
33 - 06.07.20 - 13:20
(28) А что для изменения размера использовать в 1с?
там в каталоге на диске какая то структура, там разное.
Если это можно сделать из 1с, то как?

Вот я получил набор изображений которые нужно изменять, в выборке, как пройти дальше? После (25) ?
   falselight
 
34 - 06.07.20 - 13:21
(32) Я понимаю. Но какие например?

(24) Как вот это сделать?

указываешь папку и параметры (размер, расширение, разрешение)
программа их обрабатывает. А ты загружаешь обратно в базу уже сжатые.

Где взять какой либо мануал?
   sitex
 
35 - 06.07.20 - 13:22
(34) К прмиеру ImageMagick
   sitex
 
36 - 06.07.20 - 13:25
(34) Как пример https://habr.com/ru/post/351014/
   falselight
 
37 - 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
   falselight
 
38 - 06.07.20 - 13:28
(36) Остается узнать, как этим пользоваться из 1с. все же не все так просто там.
   sitex
 
39 - 06.07.20 - 13:31
(38) Чего там не просто ? установил все что нужно. Батники готовые. Под себя собрал - про тестил. Если как говоришь что обратная связь плоха и установить не получиться сторонние приложение тогда это не твой вариант.
   falselight
 
40 - 06.07.20 - 13:33
Пробую такой пример, но тут ошибки в коде что ли

Перем WshShell;

Попытка
    WshShell = Новый COMОбъект("WScript.Shell");
    WshShell.CurrentDirectory = КаталогПрограммы();
Исключение
    СообщитьОбОшибке("Невозможно подключить модуль выполнения скриптов", Неопределено, СтатусСообщения.ОченьВажное);
    Возврат Ложь;
КонецПопытки;

WshShell.Run(""""+КаталогПрограммы()+"convert.exe"" """СтароеИмя+""""+
                    -filter Mitchell -resize "+Картинки_Ширина+"x"+Картинки_Высота+" "+
                    """"+НовоеИмяФайла+"""",0,-1);
   falselight
 
41 - 06.07.20 - 13:34
(39) Что бы взять проверить что либо из  1с, пока такого не вижу ничего ( .
   falselight
 
42 - 06.07.20 - 13:35
(39) Что например установить нужно? Что бы что то попробовать хотя бы.
   sitex
 
43 - 06.07.20 - 13:51
(37) Я тут не увижу сжатие файла , вижу только что размер рисунка изменит.
   sitex
 
44 - 06.07.20 - 13:58
(42) Установить все как написано в статье в (36) .
   sitex
 
45 - 06.07.20 - 13:59
(40) Я не пойму ты зачем режешь размеры картинки ? тебе сжать или изменить размер надо ?
   sitex
 
46 - 06.07.20 - 14:00
(40)  -filter Lanczos -define jpeg:dct-method=float -quality 55 -gaussian-blur 0.05 вот примерно так сожмет  файл рисунка
   sitex
 
47 - 06.07.20 - 14:02
+(46) для jpeg, PNG другие параметры.
   falselight
 
48 - 06.07.20 - 14:04
(45) То есть на размер изображения нужно сжимать не меняя размер?
Возможно не понимаю, не каждый день нужно размер менять.
   falselight
 
49 - 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)}: Процедура или функция с указанным именем не определена (СообщитьОбОшибке)
    <<?>>СообщитьОбОшибке("Невозможно подключить модуль выполнения скриптов", Неопределено, СтатусСообщения.ОченьВажное); (Проверка: Тонкий клиент)
   falselight
 
50 - 06.07.20 - 14:06
не понимаю короче что нужно мне делать.
   sitex
 
51 - 06.07.20 - 14:06
(49) Ты прикалываешься так ? :)
   acht
 
52 - 06.07.20 - 14:08
Вот интересно. Если ТС забанили в гугле и на всех учебных курсах, то почему еще не забанили здесь?
   falselight
 
53 - 06.07.20 - 14:08
(51) Я говорю что мне не понятно что делать, Я не вижу примера который можно попробовать.
Мысли разбежались, и я не знаю что делать.
Я не прикалываюсь.
Я таким никогда не занимаюсь.
   falselight
 
54 - 06.07.20 - 14:09
(52) Я сам забанюсь придет время.
   Lexey_
 
55 - 06.07.20 - 14:15
(52) неоднократно: LivingStar
   acht
 
56 - 06.07.20 - 14:15
(54) Не забудь, пожалуйста, спросить на форуме как это сделать.
   sitex
 
57 - 06.07.20 - 14:16
(53) Установить ImageMagick-7.0.10-Q16-HDRI.
   falselight
 
58 - 06.07.20 - 14:19
(39) Я обработку могу проверить у себя на компе, и установить тогда все что нужно.

Подскажите тогда, пожалуйста, по коду, который можно проверить.
   falselight
 
59 - 06.07.20 - 14:35
Ставлю, что бы начать тестирование.

C:\Program Files\ImageMagick-7.0.10-Q16-HDRI
   falselight
 
60 - 06.07.20 - 14:37
Я поставил C:\Program Files\ImageMagick-7.0.10-Q16-HDRI как мне ее запускать из 1с ?
 
 Рекламное место пустует
   falselight
 
61 - 06.07.20 - 14:39
(57) Подскажите пожалуйста дальше? После установки?

есть выборка с нужными данными (25) как использовать указанную программу?
   sitex
 
62 - 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 "+""""+НовоеИмяФайла+"""",,истина);
   falselight
 
63 - 06.07.20 - 14:48
Ещё попробую (37) зарегистрировал библиотеку у себя.

На сервере вроде как тоже можно будет. Если и установить потом можно будет.

Поставил (57) буду пробовать ваш код (62).

Остается узнать как делать размер файла 4,9 мб. Не больше 5 мб то есть.

Спасибо, за пример, продвигаюсь в решении.
   sitex
 
64 - 06.07.20 - 14:57
(63) для Jpeg , можно указать параметр -interlace JPEG. Прогрессивный JPEG вроде как
   falselight
 
65 - 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");
КонецПроцедуры
   sitex
 
66 - 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;
   Aleksey
 
67 - 06.07.20 - 15:18
да уж...
   falselight
 
68 - 06.07.20 - 15:18
(62) В директории чт оя поставил нет convert.exe

http://joxi.ru/J2bkE89HGaQ4xA
   sitex
 
69 - 06.07.20 - 15:23
(63) Вообщее если надо подогнать под размер в ImageMagick  есть параметр -define jpeg:extent={size}.
   sitex
 
70 - 06.07.20 - 15:23
почитайте на https://imagemagick.org/script/command-line-processing.php там много чего есть.
   falselight
 
71 - 06.07.20 - 15:24
(66) Пока не понимаю можно ли использовать пример (65)
И если его использовать то как выравнивать значения размеров, до 4,9 Мб
при условии если размер будет превышать 5 мб.

В базе вот такие размеры файлов jpg и png и больше. до 43 066 247. Ну то есть любые могут быть.
Как вот пример (37) правильно заставить уменьшать размер ???
   falselight
 
72 - 06.07.20 - 15:25
(71+) От 5 003 366 до 43 066 247
   sitex
 
73 - 06.07.20 - 15:25
(68) а галку при установке поставили 5-ую с верху ?
   falselight
 
74 - 06.07.20 - 15:26
(73) Запущу сейчас ещё раз инсталлятор тогда. Видимо нет.
   falselight
 
75 - 06.07.20 - 15:28
   sitex
 
76 - 06.07.20 - 15:32
(69) Это опять же только для JPEG параметр -->  -define jpeg:extent=5017kb , опять же тут зависит от других параметров , надо их тоже не забывать. Так можно все рисунки запороть.
   falselight
 
77 - 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 "+""""+НовоеИмяФайла+"""",,истина);    
КонецПроцедуры
   falselight
 
78 - 06.07.20 - 15:40
Пример (77) изменил файл с размера 87,7 кб до 45,9 кб
   sitex
 
79 - 06.07.20 - 15:45
(77) Под каждое расширение файла запускаешь со своими параметрами ImageMagick. Качество и размер файла определи на тестовых файлах. про PNG почитать манулы.
   falselight
 
80 - 06.07.20 - 15:49
(79) Ок, спасибо большое.

Нужно тогда мне сейчас экспериментировать с размерами.

Прояснится ли что, так как все же сложновато все под вечер.

Сейчас остается тогда понять как запускать для jpg и png. С какими параметрами, и что бы размер становился 4,9 мб.
   falselight
 
81 - 06.07.20 - 15:50
(80) Так как в выборке все размера больше 5 мб идут.

Потом уже прочая обработка.
   sitex
 
82 - 06.07.20 - 15:51
(36) здесь все расписано прям очень подробно.
   sitex
 
83 - 06.07.20 - 15:52
(80) Можно просто батник сделать и запустить его из 1С , который сам выберет и по размеру , и по расширению и в кривь и кось).
   falselight
 
84 - 06.07.20 - 15:54
(83) Хотя бы вот так сделать как есть пока. То есть есть выборка которая все размеры больше 5 мб, ставит к 4,9 мб.

(82) Спасибо буду изучать.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.