|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.12.2008, 09:55 | #1 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 16
|
Работа с DIB, изменение глубины цвета
Добрый день!
Можно ли как нибудь преобразовать массив пикселей 24bit в другие 1,4,8,16 |
14.12.2008, 16:20 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
разумеется можно. давай подробнее, телепаты в оффлайне
|
17.12.2008, 16:14 | #3 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 16
|
Прошу прощенья.. небыло доступа в интернет.. Провайдер злорадствует..
Теперь по проблеме. Работаю с mirror driver он снимает изменения экрана и записывает их массив пикселей. Драйвер может работать только в режие 16 и 24 Bit.Данные записываются в переменную PbufferScreen : Pointer. Потом я ее сжимаю и отправляю на удаленный компьютер. Я так понимаю, что конвертацию необходимо делать до отправки данных но не знаю как это сделать правильно и быстро.Если конвертировать в TBitmap, то это занимает время плюс ресурсы.. А хотелось бы сконвертировать данные в памяти. |
17.12.2008, 16:27 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Ну если данные храняться в 16 бит.. то на пиксель отведено 16 бит - слово - 2 байта. Значит если надо к примеру перевести в 8 и меньше то там уже формируется таблица цветов - палитра... если же идет речь о 15,16,24,32 битах то тут обойдемся просто перебором пикселей - ну слово,3 байта, двойное слово. Что именно... т.е. из какой в какую надо переводить ? Смысл остается прежним, что береться ну в соответсвии кол-во байт и формируются состовляющие красная, зеленая, синяя. Потом переводите в другую... разумеется что смысл переводить из меньшей в большу нет... новые биты не появятся сами по себе т.е. качество не улучшется. Так что прошу вас еще более расширить диапазон вопроса
|
17.12.2008, 17:04 | #5 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 16
|
Переводить надо из 24 бит в 1,4,8,16. Желательно бы небольшой примерчик или намек на него, а тоя в этой части немного плаваю..
Спасибо за содействие.. |
17.12.2008, 17:26 | #6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
при переводе из большей глубины цвета в меньшую, алгоритм ясен, например, из 32 в 16: берем группы по два бита, если 00 и 01 то у нас в результате 0, если 10 и 11 то результате 1. Так у нас получится 16 бит. А из меньшего в большее, это понятно - лучше не получится, картинка останется такой же.
|
17.12.2008, 20:46 | #7 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Грузин без обид конечн может я чет не понял, но вы чтот путаите
Как я понял идет речь именно о DIB - области данных. т.е. никаких палитр и поныне не будет. Тогда вот когда то писал... пользуйтесь |
18.12.2008, 06:52 | #8 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 16
|
Огромное спасибо, это как раз то что надо
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ColorBar изменение цвета | Vladya | Помощь студентам | 1 | 19.11.2008 10:09 |
Изменение цвета в Memo | Кирилл13 | Помощь студентам | 3 | 15.11.2008 23:03 |
Задача/Pascal/графический режим/пошаговое изменение цвета | Чайникус | Помощь студентам | 1 | 02.05.2008 18:07 |
изменение цвета Panel при наведении мыша | Kashp | Компоненты Delphi | 8 | 08.09.2007 10:18 |
Изменение цвета | Artem | Общие вопросы Delphi | 5 | 12.07.2007 09:07 |