Форум: "Потрепаться";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизМакрос Найти похожие ветки
← →
Goga © (2005-09-24 00:11) [0]Если не трудно переведите мне это на DELPHI
#define RAS_GETBLUE(x) (((x) >> 16) & 0xff)
#define RAS_GETGREEN(x) (((x) >> 8) & 0xff)
#define RAS_GETRED(x) ((x) & 0xff)
#define RAS_BLUE(x) (((x) & 0xff) << 16)
#define RAS_GREEN(x) (((x) & 0xff) << 8)
#define RAS_RED(x) ((x) & 0xff)
#define RAS_ROWSIZE(hdr) \
((((hdr)->width * (hdr)->depth + 15) / 16) * 2)
#define RAS_ISRGB(hdr) \
((hdr)->depth == 24 || (hdr)->depth == 32)
#define RAS_ONES(n) \
(((n) == 32) ? 0xffffffffU : ((1 << (n)) - 1))
← →
palva © (2005-09-24 00:21) [1]На делфи это не переводится. Если очень надо использовать макросы, можно оставить это на макроязыке, но перед делфи-компиляцией запускать автономный сишный препроцессор (по-моему он называется cpp32.exe) Сами макросы, конечно же, надо переделывать.
← →
DrPass © (2005-09-24 13:11) [2]"В лоб" не переводится. А заменить аналогичным и подходящим по смыслу - легко
function RAS_GETBLUE(x: integer): integer;
begin
result:=(x shr 15) and $ff;
end;
и т.д.
И даже ничего не придется менять в коде. А если используется Delphi 2005, то можно объявить ее как
function RAS_GETBLUE(x: integer): integer; inline;
- чтобы эффект был на 100% такой, как при использовании этих макросов
← →
Goga © (2005-09-24 14:24) [3]DrPass © (24.09.05 13:11) [2]
Спасибо
← →
марсианин © (2005-09-24 20:08) [4]
> #define RAS_GETBLUE(x) (((x) >> 16) & 0xff)
> #define RAS_GETGREEN(x) (((x) >> 8) & 0xff)
> #define RAS_GETRED(x) ((x) & 0xff)
>
> #define RAS_BLUE(x) (((x) & 0xff) << 16)
> #define RAS_GREEN(x) (((x) & 0xff) << 8)
> #define RAS_RED(x) ((x) & 0xff)
микрософт уже придумал макросы на все случаи жизни:
см. RGB, GetRValue, GetGValue, and GetBValue
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c