|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
Доброго времени суток, Уважаемые форумчане! Вот уже несколько дней ломаю голову над следующей задачей. Общарил инет, msdn, форум, но только каши в голове стало.. Задача : Необходимо загрузить из директории изображение (оно может быть разных форматов - jpg, bmp, png, ...), после чего извлечь данные о цвете всех пикселей, изменить цвета в соответствии с определенной формулой (в соответствии с вегетационным индексом NDVI), выполнить необходимые подсчеты, после чего вывести результат (в том числе измененное изображение) на экран. Возникает ряд вопросов : Возможно ли выполнить все перечисленные операции -не прибегая к ухищрениям типа "GetPixel" (читая данные о пикселях НЕ с экрана, а непосредственно из файла) -без необходимости написания отдельного кода для каждого формата изображений -пользуясь только средствами VBA и стандартными библиотеками, доступными на всех компьютерах, начиная с ОС Windows XP Наткнулся на эти разделы API, но для реализации на VBA они показались мне ужасно громоздкими (придется объявлять кучу функций и констант для того, чтобы добраться до истины): WIC GDI GDI+ Подскажите, пожалуйста, есть ли пути короче? В любом случае за меня кода писать не надо - просто пните меня в правильном направлении, а я там дальше уже додумаю.. Огромное спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2015, 15:02 |
|
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, 08:42 |
|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2015, 10:46 |
|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
Дмитрий Чуманов, не знаю, что такое "вегетационный индекс NDVI", но в GDI+ есть матричные операции, позволяющие работать с цветом, например, выполнить обесцвечивание (перевод в чёрно-белое) изображения или наложить эффект "сепия". Примеры, ЕМНИП, были на vbaccelerator.com. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2015, 10:56 |
|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
Прошаренный, спасибо за ответ! Мне, в принципе, главное не простота, а стабильность на всех системах (чтобы не сбоила и при этом не требовала скачивания новых библиотек на каждый компьютер и все такое прочее). Так что я готов использовать и те библиотеки, что я указывал, но я бы хотел, чтобы меня кратко сориентировали, какой путь самый разумный и надежный для работы с изображениями разного формата. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 16:30 |
|
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, 16:45 |
|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
Дмитрий Чуманов, К .Net никакого отношения. msvbvm60.dll ("виртуальная машина" VB 6.0) входит в состав ОС семейства Windows начиная с, ЕМНИП, Windows 2000. Но это запасной вариант. Библиотека VBE входит в состав продуктов, являющихся VBA-хостами. Поскольку речь о программе на VBA, подразумевается, что VBA-хост есть. То есть ничего дополнительного, если ничего не сломано, ставить не надо. В случае приступа паранойи осторожности ставите PRAGMA_SAFE = True и вообще избавляетесь от этой зависимости (но работаете медленнее). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 19:01 |
|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
к тому же VarPtrArray() можно заменить парой вызовов CopyMemory(). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2015, 19:06 |
|
VBA и работа с цветами пикселей изображений (различных форматов)
|
|||
---|---|---|---|
#18+
13-й квартал, спасибо за ответы! Правильно ли я понимаю, что с помощью описанных в этом коде функций API я смогу работать не только с BMP, но и с другими форматами? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2015, 11:47 |
|
|
start [/forum/topic.php?fid=60&msg=39072146&tid=2155769]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 117ms |
0 / 0 |