Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
04.10.2015, 15:02
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
Доброго времени суток, Уважаемые форумчане! Вот уже несколько дней ломаю голову над следующей задачей. Общарил инет, msdn, форум, но только каши в голове стало.. Задача : Необходимо загрузить из директории изображение (оно может быть разных форматов - jpg, bmp, png, ...), после чего извлечь данные о цвете всех пикселей, изменить цвета в соответствии с определенной формулой (в соответствии с вегетационным индексом NDVI), выполнить необходимые подсчеты, после чего вывести результат (в том числе измененное изображение) на экран. Возникает ряд вопросов : Возможно ли выполнить все перечисленные операции -не прибегая к ухищрениям типа "GetPixel" (читая данные о пикселях НЕ с экрана, а непосредственно из файла) -без необходимости написания отдельного кода для каждого формата изображений -пользуясь только средствами VBA и стандартными библиотеками, доступными на всех компьютерах, начиная с ОС Windows XP Наткнулся на эти разделы API, но для реализации на VBA они показались мне ужасно громоздкими (придется объявлять кучу функций и констант для того, чтобы добраться до истины): WIC GDI GDI+ Подскажите, пожалуйста, есть ли пути короче? В любом случае за меня кода писать не надо - просто пните меня в правильном направлении, а я там дальше уже додумаю.. Огромное спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.10.2015, 08:42
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
Дмитрий ЧумановДоброго времени суток, Уважаемые форумчане! Вот уже несколько дней ломаю голову над следующей задачей. Общарил инет, msdn, форум, но только каши в голове стало.. Задача : Необходимо загрузить из директории изображение (оно может быть разных форматов - jpg, bmp, png, ...), после чего извлечь данные о цвете всех пикселей, изменить цвета в соответствии с определенной формулой (в соответствии с вегетационным индексом NDVI), выполнить необходимые подсчеты, после чего вывести результат (в том числе измененное изображение) на экран. Возникает ряд вопросов : Возможно ли выполнить все перечисленные операции -не прибегая к ухищрениям типа "GetPixel" (читая данные о пикселях НЕ с экрана, а непосредственно из файла) -без необходимости написания отдельного кода для каждого формата изображений -пользуясь только средствами VBA и стандартными библиотеками, доступными на всех компьютерах, начиная с ОС Windows XP Наткнулся на эти разделы API, но для реализации на VBA они показались мне ужасно громоздкими (придется объявлять кучу функций и констант для того, чтобы добраться до истины): WIC GDI GDI+ Подскажите, пожалуйста, есть ли пути короче? В любом случае за меня кода писать не надо - просто пните меня в правильном направлении, а я там дальше уже додумаю.. Огромное спасибо! Проще возможно если только воспользоваться сторонними библиотеками обработки изображений, платными или бесплатными, http://free-basic.ru/gdiplusgfx.html https://yandex.ru/search/?text=библиотека обработки изобраений разных форматов http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=image library ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.10.2015, 10:46
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.10.2015, 10:56
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
Дмитрий Чуманов, не знаю, что такое "вегетационный индекс NDVI", но в GDI+ есть матричные операции, позволяющие работать с цветом, например, выполнить обесцвечивание (перевод в чёрно-белое) изображения или наложить эффект "сепия". Примеры, ЕМНИП, были на vbaccelerator.com. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2015, 16:30
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
Прошаренный, спасибо за ответ! Мне, в принципе, главное не простота, а стабильность на всех системах (чтобы не сбоила и при этом не требовала скачивания новых библиотек на каждый компьютер и все такое прочее). Так что я готов использовать и те библиотеки, что я указывал, но я бы хотел, чтобы меня кратко сориентировали, какой путь самый разумный и надежный для работы с изображениями разного формата. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2015, 16:45
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
13-й кварталДмитрий Чуманов, 17996863 Скачал, попробовал. Как я понимаю, для использование некоторых функций требуются библиотеки vb6, vb7, msvbvm60 Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Это обозначает, что на компьютере должны быть установлены компоненты Microsoft Visual Basic 6.0 или .NET (7.0)? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2015, 19:01
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
Дмитрий Чуманов, К .Net никакого отношения. msvbvm60.dll ("виртуальная машина" VB 6.0) входит в состав ОС семейства Windows начиная с, ЕМНИП, Windows 2000. Но это запасной вариант. Библиотека VBE входит в состав продуктов, являющихся VBA-хостами. Поскольку речь о программе на VBA, подразумевается, что VBA-хост есть. То есть ничего дополнительного, если ничего не сломано, ставить не надо. В случае приступа паранойи осторожности ставите PRAGMA_SAFE = True и вообще избавляетесь от этой зависимости (но работаете медленнее). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2015, 19:06
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
к тому же VarPtrArray() можно заменить парой вызовов CopyMemory(). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.10.2015, 11:47
|
|||
---|---|---|---|
|
|||
VBA и работа с цветами пикселей изображений (различных форматов) |
|||
#18+
13-й квартал, спасибо за ответы! Правильно ли я понимаю, что с помощью описанных в этом коде функций API я смогу работать не только с BMP, но и с другими форматами? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&tablet=1&tid=2155769]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 296ms |
total: | 423ms |
0 / 0 |