Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.12.2016, 13:00
|
|||
|---|---|---|---|
|
|||
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
Приветствую, такая задача, есть строка с описанием цвета в 16-ричной форме, скажем "0xFFAABB", есть структура типа RGB с тремя полями типа unsigned char r/g/b. Мне нужно распарсить эту строку и записать в структуру каждый компонент цвета в привычной форме, т.е от 0 до 255. Погуглил, встречается вариант типа: Код: plaintext 1. 2. 3. 4. Но тут целочисленное, а у меня строка, не въеду, как поступить, может подскажете? ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 13:11
|
|||
|---|---|---|---|
|
|||
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
I dont knowНо тут целочисленное, а у меня строка, не въеду, как поступить Разве преобразовать строку в целое с помощью, например, atoi - не самоочевидное решение?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 15:11
|
|||
|---|---|---|---|
|
|||
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
Dimitry Sibiryakov, Не, atoi вернёт 0. Шарю по форумам, походу, надо сначала в какую-то промежуточную форму преобразовать, или по частям преобразовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 15:27
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
I dont knowесть строка с описанием цвета в 16-ричной форме что в строке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 17:51
|
|||
|---|---|---|---|
|
|||
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
Изопропил, Строка именно такого вида "0xFFFFFF" Поигрался ещё с функцией strtoul(), она возвращает корректное значение, если ей передать строку без "0x", но при переводе в RGB(по приведенному выше коду), в RGB записываются только единицы, а не числовое значение 255. Наверно буду предварительно обрабатывать эту строку - отсекать "0x", остальное передавать в strtoul(), осталось определеить, как сделать так, чтобы в поля структуры RGB записывалось именно значение 0-255, а не просто 0-1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 18:50
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
Если уж перевести или написать свой переводчик из 16-ричной сложно, то просто сделай свой парсер. Каждый цвет два разряда, выдирай по две буквы из строки и считай Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 18:55
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
I dont know, Код: plaintext 1. I dont knowосталось определеить, как сделать так, чтобы в поля структуры RGB записывалось именно значение 0-255, а не просто 0-1. ниччего не понимаю. Не дели на 255.0 и диапазон будет 0..255 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 20:00
|
|||
|---|---|---|---|
|
|||
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
ИзопропилНе дели на 255.0 и диапазон будет 0..255 Тоже так подумал уже, походу так и поступлю. sscanf_s Не кросплатформенна. Завтра ещё с ней попробую. Или как предложил Dima T накидаю "парсер" P.S. Если не затруднит, растолкуйте, зачем вычитать символ: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Помню, где-то встречал объяснение, но его само не вспомню ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 20:30
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
I dont knowP.S. Если не затруднит, растолкуйте, зачем вычитать символ: потому что каждый символ ASCII имеет свой код. '0' = 48, 'A' = 65. Вобщем '0' это не ноль, потому и вычитать чтобы стал ноль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2016, 20:42
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
Чудеса прямо, то strtol вдруг не работает, то sscanf не кроссплаформа ))) http://www.cplusplus.com/reference/cstdlib/strtol/?kw=strtol http://en.cppreference.com/w/c/io/fscanf А по-моему у кого то руки кучерявые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.12.2016, 05:35
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
SiemarglЧудеса прямо, то strtol вдруг не работает, то sscanf не кроссплаформа ))) sscanf_s - не кроссплатформа. Вообще не понимаю, зачем их придумали... плюс компиляторы постоянно ругаются на "старые" версии. Плюс тем, кто использует sscanf_s, приходится с инсталлятором тащить новый рантайм ИзопропилI dont know, Код: plaintext 1. Вроде так: Код: plaintext 1. а ещё (у MS точно) есть макросы GetRValue, GetGValue, GetBValue, и макрос RGB собирающий цвет из компонентов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.12.2016, 10:19
|
|||
|---|---|---|---|
|
|||
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
Всё, разобрался, всем спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2016, 09:14
|
|||
|---|---|---|---|
Есть строка с цветом вида 0xFFAABB, как привести её в нормальный вид RGB? |
|||
|
#18+
I dont knowDimitry Sibiryakov, Не, atoi вернёт 0. Шарю по форумам, походу, надо сначала в какую-то промежуточную форму преобразовать, или по частям преобразовывать. надо использовать аналоги atoi с возможностью указать основание системы счисления, из которой переводим, и все. также это умеет делать scanf() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2018367]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 169ms |

| 0 / 0 |
