Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 07.10.2011, 16:20   #1
bgmenot
AnyKey`щик
 
Регистрация: 16.11.2009
Сообщений: 3
Написано одно полезное сообщение
(для 4 участников)
Смех Get_Color -> SetColor

Всем привет. У меня проблема . Есть одна функция (библиотека Lib_cnv2), Get_Color(X, Y : Integer) : Integer;
Она возвращает цвет пикселя из заданных координат. Так вот проблема в том, что она возвращает одно большое число. А мне, для использования её в SetColor(R,G,B ) нужны три числа. Вопрос: Как, с помощью битовых сдвигов получить нужные значения цветов? Всем заранее спасибо за ответ.

P.s Вот код функции Get_Color:
public static int get_color(int iint j)
    {
        
int ai[] = new int[1];
        
M.I.getRGB(ai01ij11);
        return 
ai[0] & 0xffffff;
    } 
(Offline)
 
Ответить с цитированием
Старый 07.10.2011, 18:56   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Get_Color -> SetColor

Первый байт получаем операцией b:=color and 0xFF, три других - b:=(color shr 8) and 0xFF, b:=(color shr 16) and 0xFF и b:=(color shr 24) and 0xFF, вроде так. В каком порядке там идут байты - не помню, по-моему, AARRGGBB.
(Offline)
 
Ответить с цитированием
Старый 07.10.2011, 20:25   #3
alexprey
ПроЭктировщик
 
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений
(для 30 пользователей)
Ответ: Get_Color -> SetColor

судя по & 0xffffff; То там только RGB
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 19:44   #4
bgmenot
AnyKey`щик
 
Регистрация: 16.11.2009
Сообщений: 3
Написано одно полезное сообщение
(для 4 участников)
Ответ: Get_Color -> SetColor

Сообщение от ViNT Посмотреть сообщение
Первый байт получаем операцией b:=color and 0xFF, три других - b:=(color shr and 0xFF, b:=(color shr 16) and 0xFF и b:=(color shr 24) and 0xFF, вроде так. В каком порядке там идут байты - не помню, по-моему, AARRGGBB.
А наоборот как?
(Offline)
 
Ответить с цитированием
Старый 19.10.2011, 20:09   #5
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Get_Color -> SetColor

Как-то так
C:=B or (G shl 8) or (R shl 16);

Последний раз редактировалось ViNT, 03.11.2011 в 16:16.
(Offline)
 
Ответить с цитированием
Старый 02.11.2011, 23:45   #6
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Ответ: Get_Color -> SetColor

Сообщение от ViNT Посмотреть сообщение
Как-то так
C:=B and (G shl 8) and (R shl 16);
тогда уж так, по-моему:
C := B or (G shl 8) or (R shl 16);
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ViNT (03.11.2011)
Старый 03.11.2011, 16:15   #7
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Get_Color -> SetColor

Сообщение от barsunduk Посмотреть сообщение
тогда уж так, по-моему:
C := B or (G shl 8) or (R shl 16);
Да, именно так, это я напутал.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:20.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com