|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.07.2011, 14:04 | #1 |
Пользователь
Регистрация: 21.06.2009
Сообщений: 37
|
Извлечение информации из GetPixel()
Для извлечения информации о каждом пикселе выбранной мной картинки использую следующий метод:
CImage image; image.GetPixel(j,i); И через двойной цикл for я вынимаю информацию о каждом пикселе картинки. Мне падают (как возвращаемые значения GetPixel()) int'ы вида: 6172466 6041908 5520191 etc.. Вопрос в том как мне отсюда вынуть информацию в виде RGB. Видел такие алгоритмы по изъятию информации, но они для VisualBasic. К примеру: Код:
Если кто-то касался уже данного вопроса напишите пожалуйста как вынуть данные. Спасибо! |
13.07.2011, 14:20 | #2 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
13.07.2011, 14:27 | #3 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
metoflex, пиксель имеет 4 значения RGB + альфа канал, следовательно информацию можно извлечь как-то так (4 байта всего, каждому по значению):
Код:
Для автоматизации засуньте в цикл и поиграйте с побитовыми сдвигами (<</>>)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
13.07.2011, 14:30 | #4 |
Пользователь
Регистрация: 21.06.2009
Сообщений: 37
|
|
13.07.2011, 14:32 | #5 | |
Пользователь
Регистрация: 21.06.2009
Сообщений: 37
|
Цитата:
Мб еще кто-нибудь задавался вопросом по преобразованию RGB ( 8 8 8 ) в RGB (5 6 5). На эту тему тоже половину инета перелопатил, но четкого алгоритма так и не нашел. Спасибо! |
|
13.07.2011, 14:38 | #6 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
metoflex, а вам обязательно GetPixel() нужно? Ведь есть метод ScanLine, - побыстрее будет. Плюс когда картинку в TBitmap храните, в свойствах TBitmap можно задать формат пиксела:
Код:
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
|
13.07.2011, 14:48 | #7 | |
Пользователь
Регистрация: 21.06.2009
Сообщений: 37
|
Цитата:
Спасибо за совет! Я подумаю над этим. |
|
13.07.2011, 19:02 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Я же указал строки из доков. Там указаны макросы, которые написаны и надо использовать.
|
13.07.2011, 19:34 | #9 | |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Цитата:
буквальный перевод такой: Код:
Код:
|
|
14.07.2011, 22:34 | #10 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
Я не помню есть ли в c++ ScanLine, но в c# ScanLine нет, вместо него разработчики сделали что-то вроде этого:
Код:
Но вот так очень медленно тоже будет работать. По этому чтобы уж совсем до сканлайна оптимизировать, рукомендую unsafe code использовать.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
Последний раз редактировалось ImmortalAlexSan; 14.07.2011 в 23:23. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос про getpixel | Karyuudo | Общие вопросы Delphi | 7 | 16.01.2018 14:11 |
GetPixel,SetPixel | Акоб | Общие вопросы C/C++ | 8 | 12.04.2011 16:33 |
не правильно работает GetPixel | Yokka | Общие вопросы .NET | 2 | 17.02.2011 01:08 |
извлечение информации из текста | Alejandr0 | Microsoft Office Word | 2 | 06.09.2010 14:23 |
Извлечение информации из JAVA приложения. | bbFV | Общие вопросы по Java, Java SE, Kotlin | 3 | 28.05.2010 12:13 |