Сегодня я расскажу о WIA.ImageFile — полезной библиотеке, которая поможет решить некоторые пробелы встроенных в 1С средств для работы работы с графикой.
Данная библиотека входит в стандартную поставку Windows начиная c Windows Vista — для персональных компьютеров и с Windows Server 2003 R2 — для серверов, кроме этого WIA 2.0 можно установить на Windows XP SP1 и выше.
Все начинается с создания COM-объекта и загрузки файла изображения.
1 2 | Image = Новый COMОбъект("WIA.ImageFile"); Image.LoadFile("имя файла изображения"); |
WIA.ImageFile, как и знакомый всем Paint может работать со следующими форматами изображения:
- JPEG;
- GIF;
- PNG;
- BMP;
- TIFF.
Получение основной информации об изображении выглядит приблизительно так:
1 2 3 4 5 6 7 8 | Сообщить("Расширение файла: "+Image.FileExtension); Сообщить("Ширина: "+Image.Width); Сообщить("Высота: "+Image.Height); Сообщить("Глубина цвета: "+Image.PixelDepth); Сообщить("Горизонтальное разрешение: "+Image.HorizontalResolution); Сообщить("Вертикальное разрешение: "+Image.VerticalResolution); Сообщить("Количество фреймов: "+Image.FrameCount); //насколько я понимаю, речь идет о многостраничных TIFF-файлах и GIF-файлах |
Дополнительную информацию об изображении можно получить так:
1 2 3 4 | Сообщить("Файл анимирован: "+?(Image.IsAnimated, "да", "нет")); Сообщить("Файл содержит индексированную палитру: "+?(Image.IsIndexedPixelFormat, "да", "нет")); Сообщить("Файл садержит альфа-информацию: "+?(Image.IsAlphaPixelFormat, "да", "нет")); Сообщить("Файл содержит расширенную информацию о цвете: "+?(Image.IsExtendedPixelFormat, "да", "нет")); |
И, наконец, некоторые свойства изображения можно получить так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Если Image.Properties.Exists("40091") Тогда nf = Image.Properties("40091").Value; Сообщить("Название: "+nf.String); КонецЕсли; Если Image.Properties.Exists("40092") Тогда nf = Image.Properties("40092").Value; Сообщить("Комментарий: "+nf.String); КонецЕсли; Если Image.Properties.Exists("40093") Тогда nf = Image.Properties("40093").Value; Сообщить("Автор: "+nf.String); КонецЕсли; Если Image.Properties.Exists("40094") Тогда nf = Image.Properties("40094").Value; Сообщить("Ключевые слова: "+nf.String); КонецЕсли; |
Более подробно об объекте WIA.ImageFile можно узнать тут.
На этом все, надеюсь данная статья Вам помогла.