gifts2017

Обработка изображений номенклатуры в УТ 10.3

Опубликовал Анянов Михаил (insurgut) в раздел Обработки - Обработка справочников

Данная обработка предназначения для уменьшения основных изображений номенклатуры, загруженных в информационную базу конфигурации Управление торговлей 10.3.

Очень часто пользователи, отвечающие за наполнение информационной базы, загружают изображения, часто не задумываясь об формате и размерах. В результате очень часто база разрастается довольно сильно даже при малом объеме документооборота.

Чревато это увеличенными (раздутыми) объемами бэкапов, а также большой нагрузкой на обмены (в случае наличия распределенных баз).

В большинстве случаев, таких как вывод картинки в прайс-лист, либо выгрузки ее на сайт, достаточно даже изображений размером не больше 800x600 пикселей. Объем картинок, сохраненных в таком размере, обычно не превышает и 100 Кбайт, в то время, как исходное изображение может достигать 5-10 Мбайт (в случае загрузки его с цифрового фотоаппарата без изменения настроек по-умолчанию).

Данная обработка работает следующим образом:
1. Регистрируется библиотека GFLAx (архив для х32 и х64 ОС Windows прилагаю)
2. Открываете обработку, указываете группу номенклатуры, которую необходимо обработать
2. Устанавливаете максимальный размер (в байтах) для основного изображения, максимальную ширину и высоту изображения, до которого будет уменьшена картинка
3. После запуска будет отобрана вся номенклатура в указанной группе
4. Если размер основного изображения будет превышать указанный нами, то картинка сохраняется на жесткий диск (во временный каталог, или каталог, заданный вами вручную)
5. При помощи компоненты GFLAx производится пропорциональное уменьшение ширины и высоты изображения до максимально допустимого
6. Изображение сохраняется в формате JPEG с качеством 75 (в большинстве случаев этого более чем достаточно, в противном случае код обработки открыт и вы всегда этот момент можете доработать)
7. Сохраненное изображение загружается обратно в базу

Так же имеется возможность вывести небольшой отчет, с результатом работы обработки.


Что побудило меня на написание этой обработки? :) Звонок с филиала, с вопросом "Почему не происходит обмен". Начав разбираться, выясняю, что файл обмена в сжатом состоянии занимает больше 300МБайт. Т.к. обмен у нас осуществляется раз в полчаса, то со стороны филиала (интернет там не особо быстрый) сервер не успевал загрузить файл обмена с FTP, он перезаписывался в головном офисе, и обмен останавливался с ошибкой чтения файла. Причина разросшегося файла обмена была выяснена не сразу. Когда нашел - выяснил, что по новой номенклатуре от поставщика изображений нет, и был выделен специально для этого зеркальный фотоаппарат. Картинки загружались "как есть" с разрешением больше 3к пикселей в ширину и размером более 5МБайт.

Наткнулся на обработку уменьшения картинок для УТ 11: http://infostart.ru/public/93278/

Однако для УТ 10.3 она конечно не подходит, т.к. томов файлов тут нет. Взял ее за основу. Скачал библиотеки GFLAx для 32 и 64-разрядных ОС. Установил и зарегистрировал библиотеки согласно описанию. Взлетело без проблем.


На всякий случай приведу алгоритм регистрации библиотеки GFLAx.

Скачиваете и распаковываете GflAX-binaries-3.0.zip

Если у вас 32-разрядная ОС:
1. Копируете папку Unicode Release.Win32 в директорию C:\Windows\System32
2. Запускаете командную строку от имени администратора и выполняете команду C:\Windows\system32\regsvr32.exe "Unicode Release.Win32\GflAX.dll"

Если у вас 64-разрядная ОС:
1. Копируете папку Unicode Release.Win32 в директорию C:\Windows\SysWOW64\
2. Копируете папку Unicode Release.x64 в директорию C:\Windows\System32
3. Запускаете командную строку от имени администратора и выполняете команду C:\Windows\system32\regsvr32.exe "Unicode Release.x64\GflAX.dll"
4. Выполняете команду C:\Windows\SysWOW64\regsvr32.exe "Unicode Release.Win32\GflAX.dll"

P.S. На своем примере обработав 1 группу номенклатуры размер изображений был уменьшен со 100 до 14МБайт, что считаю довольно существенным.

Обновление от 25.02.2016: Добавил возможность указания качества сжатия JPEG. Если исходная картинка в базе имеет более низкое качество и не происходит изменения ее размеров, то пересохраняться в более высоком качестве она не будет, т.к. фактически картинка останется та же, а размер ее вырастет.

Так же добавлена возможность обработки всех изображений номенклатуры, которые добавлены в файлах номенклатуры.

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

Наименование Файл Версия Размер
Обработка уменьшения картинок номенклатуры 80
.epf 11,24Kb
25.02.16
80
.epf 11,24Kb Скачать
Библиотека GFLAx для 32 и 64-разрядных ОС Windows 70
.zip 1,71Mb
14.11.14
70
.zip 1,71Mb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение
Комментарии
1. юрий гулидов (gull22) 19.11.14 12:12
2. Артём Руднев (astronavt006) 19.02.15 12:57
Большое спасибо за разработку. Реально помогла)))
3. Анянов Михаил (insurgut) 19.02.15 13:20
(2) astronavt006, рад, что пригодилась ;)
4. Ро Ман (osd2006) 25.02.16 06:14
Спасибо огромное, удалось сжать картинки в базе на 127 мб.
5. Анянов Михаил (insurgut) 25.02.16 08:46
Добавил возможность указания качества сжатия JPEG. Если исходная картинка в базе имеет более низкое качество и не происходит изменения ее размеров, то пересохраняться в более высоком качестве она не будет, т.к. фактически картинка останется та же, а размер ее вырастет.
Так же добавлена возможность обработки всех изображений номенклатуры, которые добавлены в файлах номенклатуры.
6. Андрей Андрей (Jelbock) 08.04.16 13:36
Здравствуйте. Подскажите, я так понимаю, дополнительные изображения не получится пережать?
7. Анянов Михаил (insurgut) 08.04.16 17:31
(6) Jelbock, получится, эта возможность была добавлена 25.02.2016.
8. Андрей Андрей (Jelbock) 12.04.16 21:56
9. Сергей В (S@V) 07.06.16 07:32
Спасибо большое за обработку ))) ужал на 200 метров базу )))
10. Антон Дмитриев (Voblhned) 09.06.16 20:30
ужал базу с 5,4 гигадо, до 980 метров, а теперь скажи на реальной базу стоит делать? Как она дружит с РИБом, если центральную ужать, то потом ужимать узлы или нет?
11. Анянов Михаил (insurgut) 10.06.16 22:04
(10) Voblhned, по РИБу картинки спокойно перейдут с обменом из центральной базы в распределенные. Но нужно учитывать факт размера файла обмена - картинки в архиве практически не сжимаются. Поэтому обрабатывать нужно по порционно, прогоняя обмен после обработки очередной порции.
12. Антон Дмитриев (Voblhned) 14.06.16 22:55
(11) insurgut, Я примерно так и думал, проверил уже, так и есть, файл обмена стал огромным, по категориям разбил, хорошо перенеслось. Плюс тебе в карму.
13. Nusha Naza (NushaN) 07.07.16 11:36
insurgut, шикарно, спасибо! работает в лёт! Применима и для УПП 1.3
2.61 Гб -> 900 Мб