Mikle писал(а):Alex (2112)
В TGA можно перевести фотошопом, только обрати внимание, что это не абы какой TGA, а именно GrayScale формат.
Кроме фотошопа есть множество других программ, да и, если разобраться с примерами из книги, то не составит труда переделать их на, например, BMP.
И еще, яркость пикселя в RGB не напрямую зависит от величины числа. Есть формулы для перевода.
Огромное спасибо за подсказку.
Применяю вот эту формулу яркости:
- Код: Выделить всё
Y = 0,299R + 0,587G + 0,114B.
И вот этот код для преобразования в GrayScale:
- Код: Выделить всё
Function GrayScale(ByVal Colr As Long) As Long
Dim R&, G&, B&
R = Colr Mod 256
Colr = Colr \ 256
G = Colr Mod 256
Colr = Colr \ 256
B = Colr Mod 256
GrayScale = (77 * R + 150 * G + 28 * B) / 255
End Function
Способ применения:
- Код: Выделить всё
pictureBW.PSet (I, J), RGB(GrayScale(Сolor), GrayScale(Color), GrayScale(Color))
Но осталась одна проблема которую я никак не могу решить.
Найти пример или просто кусок кода как сохранить картинку в TGA формате.
Помоги те кто нить кодом. Пытался от обратного зделать. Лажа получается.
PS: если файл TGA используется как карта высот, то разрядность цвета должна быть 16, 24 или 32 бита?
ЗЫ: Ко всем проблемам ещё добавилась та, что карта может быть 64*64. Поюзал поиск нашёл обсуждение данной проблемы и вроде как бы проблема была решена:
http://bbs.vbstreets.ru/viewtopic.php?t ... light=1024
Но я так и не нашёл в ветке рабочий кусок кода, имхо часть ссылок не работает.
А у меня карта высот соответсвует пиксельному размеру картинки т.е. 361*289. Вообще так может быть, или карта должна быть обязательно квадратной?