Немного о графических файлах. Сжатие. Распознавание текста

26.05.19

Разработка - Инструментарий разработчика

Простые и доступные методы борьбы с лишним весом графических файлов и распознавание текста.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Сжатие графических файлов и распознавание текста:
.epf 27,52Kb ver:1..0.0.0
14
14 Скачать (1 SM) Купить за 1 850 руб.

Самый простой способ борьбы с лишним весом 

 Работаем, работаем, записываем графические файлы в базу и вдруг бац. База неотвратимо приближается к терабайту. И все из-за них. 

В борьбе за байты, наверное, подойдут любые методы, даже широко известные Com объекты от Майкрософт, как: “WIA.ImageFile" и “WIA.ImageProcess”. Они просты и доступны с Windows XP pac. 2. То есть целую вечность. Но, увы, работают с диском и не могут перезаписать исходный файл

Что эта парочка умеет. Обрезать, изменять размер, поворачивать, конвертировать, сжимать и наклеивать другое изображение. То есть практически все.  

Самый простой способ борьбы с лишними байтами это сконвертировать тяжелые файлы. То есть Формат BMP можно смело конвертировать, не забивая себе голову. Как минимум мегабайт экономии 

Создаем объекты 

 

ImageProcess = новый COMОбъект("WIA.ImageProcess");
ImageFile = новый COMОбъект("WIA.ImageFile"); 

 

Форматы 

 

wiaFormatBMP    = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
wiaFormatJPEG   = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"; 

 

Ну и собственно, конвертация 

ImageFile.LoadFile(ПутьКФайлу);
НомерПараметра = 0; //Фильтр Convert должен применятся быть последним 
Если  ImageFile.FormatID = wiaFormatBMP Тогда  
	Filter = ImageProcess.FilterInfos("Convert").FilterID ;  
	ImageProcess.Filters.Add(Filter);  
	ImageProcess.Filters(НомерПараметра).Properties("FormatID").Value = wiaFormatJPEG; 
	//Сжатие изображения, если требуется ( 
	ImageProcess.Filters(НомерПараметра).Properties("Quality").Value = 5; 
	//) 
	newImageFile = ImageProcess.Apply(ImageFile);  
	ИмяНовогоФайла = ПолучитьИмяВременногоФайла(newImageFile.FileExtension);  
	newImageFile.SaveFile(ИмяНовогоФайла); 
КонецЕсли;

 

Распознавание текста. 

Бывает очень нужно, а  Файн ридера нет. 

"MODI.Document"  в помощь. Доступная бесплатная библиотека от MS.  Вполне себе сносно распознает текст. Правда только TIFF. Но мы то уже умеем конвертировать форматы. Вместо JPEG формата применяем TIFF формат

Document = Новый ComObject ("MODI.Document"); 
Document.Create(ИмяФайлаДляРаспознания); 
Document.OCR(25); //25 это Русский 
Result = Document.Images.item(0).Layout.Text; 
Document.Close(); 
ТД = Новый ТекстовыйДокумент; 
ТД.УстановитьТекст(Result); 
ТД.Показать(); 

Скачать библиотеку MODI.Document" можно с дистрибутивом SharePoint Designer 2007. Не нужен SharePoint, так установите только Microsoft Office Document Imaging.  Инструкция установки MODI с сайта поддержки майкрософт

В прилагаемой обработке пример работы с изображением. Коды форматов для WIA.ImageProcess и коды языков для MODI.Document.

Тестировалось на платформе 8.3.10 управляемое приложение. У пользователя было отключена  Защита от опасных действий.

Обработка Импорт изображений Распознавание текста Сжатие графических файлов

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    177999    988    403    

945

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    19508    131    70    

131

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    18829    50    19    

82

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

15000 руб.

10.11.2023    12847    53    33    

72

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    29010    100    48    

146

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18651    7    32    

43

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1740    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kolya_tlt 89 07.05.19 09:41 Сейчас в теме
Для решения этой проблемы имеется подсистема Томов в БСП и причем кроссплатформенная, без всяких КОМов, майкрософтов и т.д.
2. tusv 212 07.05.19 12:28 Сейчас в теме
(1)Не подсистема томов, а Работа с файлами. И она не сжимает, ни распознает и использует внешние компоненты. ИМХО
3. Vasas2007 08.05.19 05:40 Сейчас в теме
(1)бсп может не быть в конфе.
4. Infector 204 08.05.19 10:48 Сейчас в теме
Самый простой способ борьбы с лишними байтами это сконвертировать тяжелые файлы. То есть Формат BMP можно смело конвертировать, не забивая себе голову.


в подавляющем большинстве случаев, но не всегда, т.к. качество изображения при такой манипуляции тоже меняется.
Простой эксперимент позволяем убедиться - рисуем в paint черный квадрат, сохраняем в BMP, открываем заново и увеличиваем масштаб, так чтобы разглядеть граничные пиксели. Затем пересохраняем в JPG и проводим тот же фокус с приближением масштаба.

Т.е. если появление градиента на границах элементов изображения не критично - можно делать. А вот если подразумевается обработка картинок какими-либо специфическими программами (например теми, которые пытаются конвертировать растровые избражения в векторные), то может отрицательно сказаться на результате.
5. tusv 212 08.05.19 12:25 Сейчас в теме
(4)Это да. Но кому надо качество. самый оптимальный путь организовать Фото банк
6. user1302156 31.10.19 09:14 Сейчас в теме
Добрый день, подскажите почему программа ругается на эти строки

ImageProcess.Filters(НомерПараметра).Properties("FormatID").Value = wiaFormatJPEG; 
	
	ImageProcess.Filters(НомерПараметра).Properties("Quality").Value = 5; 


Пишет что индекс вышел за границы, при этом меняла значение НомерПараметра на другие ситуация не меняется
7. realm 25.11.22 06:18 Сейчас в теме
(6) Сделайте НомерПараметра = 1
Оставьте свое сообщение