powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA и работа с цветами пикселей изображений (различных форматов)
10 сообщений из 10, страница 1 из 1
VBA и работа с цветами пикселей изображений (различных форматов)
    #39067882
Доброго времени суток, Уважаемые форумчане!
Вот уже несколько дней ломаю голову над следующей задачей. Общарил инет, msdn, форум, но только каши в голове стало..

Задача : Необходимо загрузить из директории изображение (оно может быть разных форматов - jpg, bmp, png, ...), после чего извлечь данные о цвете всех пикселей, изменить цвета в соответствии с определенной формулой (в соответствии с вегетационным индексом NDVI), выполнить необходимые подсчеты, после чего вывести результат (в том числе измененное изображение) на экран.

Возникает ряд вопросов :
Возможно ли выполнить все перечисленные операции
-не прибегая к ухищрениям типа "GetPixel" (читая данные о пикселях НЕ с экрана, а непосредственно из файла)
-без необходимости написания отдельного кода для каждого формата изображений
-пользуясь только средствами VBA и стандартными библиотеками, доступными на всех компьютерах, начиная с ОС Windows XP

Наткнулся на эти разделы API, но для реализации на VBA они показались мне ужасно громоздкими (придется объявлять кучу функций и констант для того, чтобы добраться до истины):
WIC
GDI
GDI+

Подскажите, пожалуйста, есть ли пути короче?
В любом случае за меня кода писать не надо - просто пните меня в правильном направлении, а я там дальше уже додумаю..
Огромное спасибо!
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39068076
Дмитрий ЧумановДоброго времени суток, Уважаемые форумчане!
Вот уже несколько дней ломаю голову над следующей задачей. Общарил инет, 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
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39068155
Дмитрий Чуманов,

17996863
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39068167
Дмитрий Чуманов,

не знаю, что такое "вегетационный индекс NDVI", но в GDI+ есть матричные операции, позволяющие работать с цветом, например, выполнить обесцвечивание (перевод в чёрно-белое) изображения или наложить эффект "сепия". Примеры, ЕМНИП, были на vbaccelerator.com.
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39072146
Прошаренный, спасибо за ответ!
Мне, в принципе, главное не простота, а стабильность на всех системах (чтобы не сбоила и при этом не требовала скачивания новых библиотек на каждый компьютер и все такое прочее).

Так что я готов использовать и те библиотеки, что я указывал, но я бы хотел, чтобы меня кратко сориентировали, какой путь самый разумный и надежный для работы с изображениями разного формата.
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39072171
13-й кварталДмитрий Чуманов,

17996863

Скачал, попробовал. Как я понимаю, для использование некоторых функций требуются библиотеки vb6, vb7, msvbvm60

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#If VBA6 Then
Private Declare Function VarPtrArray Lib "vbe6" Alias "VarPtr" ( _
   Arr() As Any) As Long
#ElseIf VBA7 Then
Private Declare Function VarPtrArray Lib "vbe7" Alias "VarPtr" ( _
   Arr() As Any) As Long
#Else
Private Declare Function VarPtrArray Lib "msvbvm60" Alias "VarPtr" ( _
   Arr() As Any) As Long
#End If



Это обозначает, что на компьютере должны быть установлены компоненты Microsoft Visual Basic 6.0 или .NET (7.0)?
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39072330
Дмитрий Чуманов,

К .Net никакого отношения. msvbvm60.dll ("виртуальная машина" VB 6.0) входит в состав ОС семейства Windows начиная с, ЕМНИП, Windows 2000. Но это запасной вариант. Библиотека VBE входит в состав продуктов, являющихся VBA-хостами. Поскольку речь о программе на VBA, подразумевается, что VBA-хост есть.
То есть ничего дополнительного, если ничего не сломано, ставить не надо.

В случае приступа паранойи осторожности ставите PRAGMA_SAFE = True и вообще избавляетесь от этой зависимости (но работаете медленнее).
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39072335
к тому же VarPtrArray() можно заменить парой вызовов CopyMemory().
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39073461
13-й квартал, спасибо за ответы!
Правильно ли я понимаю, что с помощью описанных в этом коде функций API я смогу работать не только с BMP, но и с другими форматами?
...
Рейтинг: 0 / 0
VBA и работа с цветами пикселей изображений (различных форматов)
    #39073614
13-й квартал, кстати, если Pragma_Safe установлен на False, то как раз вылезает следующая ошибка:
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA и работа с цветами пикселей изображений (различных форматов)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]