0
- 16.06.2012 - 16:21
|
Доброго времени суток. Собственно возникла у меня такая проблемка. Я не программист, поэтому собственно и требуется помощь знающих людей, кто сталкивался, а я думаю такие есть, с подобной штукой, в общем буду изъясняться как могу, если что некорректно объясню, поправляйте, уточняйте, ибо для меня всё это тёмный лес. Есть программка, в ней текстовый файлик, суть в том, что мне в этом текстовом файле нужно задать интересующий меня цвет, по умолчанию там стоит 0, мне же необходим именно мой цвет, сгенерированный в 16ричной системе. Дело в том, что программа понимает только GDI кодировку виндоус, и поэтому ни RGB ни тем более Hex код я ввести не могу, скажите, есть ли какие то конверторы, позволяющие перевести Hex в GDI код. Про саму эту кодировку знаю, что 0 в ней это чёрный, а вот зеленый цвет допустим который в Hex будет 00FF00 в терминологии GDI обозначен кодом 32768, всё далее сегодняшние поиски в гугле никак успехом не увенчались, узнал только что вроде бы это связано с языком С++ может и нет, собственно стоит вот такая задача у меня есть 10-15 Hex кодов как мне узнать их обозначение в кодировке GDI и возможно ли это вообще. Всё спасибо за внимание, если что непонятного уточняйте, надеюсь на помощь. | |
1
- 16.06.2012 - 19:45
| WeMaN - вы встали на тропу войны, назвав GDI кодировкой. Если хотите победить - опишите ситуацию подробнее. Есть масса способов перехватить вывод на печать и подменить цвет. Ключ - PDF. А именно в opensource - решениях. | |
2
- 17.06.2012 - 01:51
| какая тропа, какой то программер написал скрипт на vba для AutoCad в котором цвет создаваемого скриптом объекта задаётся не Hex'ом а в GDI формате, вопрос в том, как мне узнать какой номер имеет цвет в GDI если в Hex'e он допустим 00FF00, ну тут то знаю что зеленый, а остальные как... смысл в том, что должны быть палитры или что то по типу этого, что ещё пояснить суть работы скрипта? | |
3
- 17.06.2012 - 01:53
| Скрипт в AutoCad рисует линию, по умолчанию её цвет "0" т.е. черный, если параметр изменить с "0" на "32768" цвет линии будет зеленый, как узнать коды других цветов... | |
4
- 17.06.2012 - 02:32
| попробуй задать другие значения и определить получившееся для них цвета или открой help к autocad и почитай что они там по этому поводу пишут. Так же обратись в службу поддержки пускай отробатывают бабки ;) | |
5
- 17.06.2012 - 10:23
| 3-WeMaN > сдается мне, что надо просто в одной системе исчислять - либо X, либо D. | |
banned 6
- 17.06.2012 - 13:12
| у меня есть 10-15 Hex кодов как мне узнать их обозначение в кодировке GDI Совершенно случайно #00FF00 = Dec 32768 = RGB 0,128,0 По идее Желтый = RGB 255, 255, 0 = Hex #FFFF00 = Dec 16776960 | |
7
- 17.06.2012 - 18:45
|
это может(должен?) быть не "GDI" а ACI. //------------------------------------------------------------------------------ #ifndef aci_h #define aci_h //------------------------------------------------------------------------------ extern int aci[257][3]; //------------------------------------------------------------------------------ int gl_color_to_aci(const float &r, const float &g, const float &b); //------------------------------------------------------------------------------ #endif //aci_h ////////////////////////////////////////////////////// //------------------------------------------------------------------------------ #include "aci.h" //------------------------------------------------------------------------------ #include <math.h> //------------------------------------------------------------------------------ int aci[257][3] = ** {0, 0, 0**, //по блоку {255, 0, 0**, {255, 255, 0**, {0, 255, 0**, {0, 255, 255**, {0, 0, 255**, {255, 0, 255**, {0, 0, 0**, //белый/черный {65, 65, 65**, {128, 128, 128**, {255, 0, 0**, {255, 170, 170**, {189, 0, 0**, {189, 126, 126**, {129, 0, 0**, {129, 86, 86**, {104, 0, 0**, {104, 69, 69**, {79, 0, 0**, {79, 53, 53**, {255, 63, 0**, {255, 191, 170**, {189, 46, 0**, {189, 141, 126**, {129, 31, 0**, {129, 96, 86**, {104, 25, 0**, {104, 78, 69**, {79, 19, 0**, {79, 59, 53**, {255, 127, 0**, {255, 212, 170**, {189, 94, 0**, {189, 157, 126**, {129, 64, 0**, {129, 107, 86**, {104, 52, 0**, {104, 86, 69**, {79, 39, 0**, {79, 66, 53**, {255, 191, 0**, {255, 234, 170**, {189, 141, 0**, {189, 173, 126**, {129, 96, 0**, {129, 118, 86**, {104, 78, 0**, {104, 95, 69**, {79, 59, 0**, {79, 73, 53**, {255, 255, 0**, {255, 255, 170**, {189, 189, 0**, {189, 189, 126**, {129, 129, 0**, {129, 129, 86**, {104, 104, 0**, {104, 104, 69**, {79, 79, 0**, {79, 79, 53**, {191, 255, 0**, {234, 255, 170**, {141, 189, 0**, {173, 189, 126**, {96, 129, 0**, {118, 129, 86**, {78, 104, 0**, {95, 104, 69**, {59, 79, 0**, {73, 79, 53**, {127, 255, 0**, {212, 255, 170**, {94, 189, 0**, {157, 189, 126**, {64, 129, 0**, {107, 129, 86**, {52, 104, 0**, {86, 104, 69**, {39, 79, 0**, {66, 79, 53**, {63, 255, 0**, {191, 255, 170**, {46, 189, 0**, {141, 189, 126**, {31, 129, 0**, {96, 129, 86**, {25, 104, 0**, {78, 104, 69**, {19, 79, 0**, {59, 79, 53**, {0, 255, 0**, {170, 255, 170**, {0, 189, 0**, {126, 189, 126**, {0, 129, 0**, {86, 129, 86**, {0, 104, 0**, {69, 104, 69**, {0, 79, 0**, {53, 79, 53**, {0, 255, 63**, {170, 255, 191**, {0, 189, 46**, {126, 189, 141**, {0, 129, 31**, {86, 129, 96**, {0, 104, 25**, {69, 104, 78**, {0, 79, 19**, {53, 79, 59**, {0, 255, 127**, {170, 255, 212**, {0, 189, 94**, {126, 189, 157**, {0, 129, 64**, {86, 129, 107**, {0, 104, 52**, {69, 104, 86**, {0, 79, 39**, {53, 79, 66**, {0, 255, 191**, {170, 255, 234**, {0, 189, 141**, {126, 189, 173**, {0, 129, 96**, {86, 129, 118**, {0, 104, 78**, {69, 104, 95**, {0, 79, 59**, {53, 79, 73**, {0, 255, 255**, {170, 255, 255**, {0, 189, 189**, {126, 189, 189**, {0, 129, 129**, {86, 129, 129**, {0, 104, 104**, {69, 104, 104**, {0, 79, 79**, {53, 79, 79**, {0, 191, 255**, {170, 234, 255**, {0, 141, 189**, {126, 173, 189**, {0, 96, 129**, {86, 118, 129**, {0, 78, 104**, {69, 95, 104**, {0, 59, 79**, {53, 73, 79**, {0, 127, 255**, {170, 212, 255**, {0, 94, 189**, {126, 157, 189**, {0, 64, 129**, {86, 107, 129**, {0, 52, 104**, {69, 86, 104**, {0, 39, 79**, {53, 66, 79**, {0, 63, 255**, {170, 191, 255**, {0, 46, 189**, {126, 141, 189**, {0, 31, 129**, {86, 96, 129**, {0, 25, 104**, {69, 78, 104**, {0, 19, 79**, {53, 59, 79**, {0, 0, 255**, {170, 170, 255**, {0, 0, 189**, {126, 126, 189**, {0, 0, 129**, {86, 86, 129**, {0, 0, 104**, {69, 69, 104**, {0, 0, 79**, {53, 53, 79**, {63, 0, 255**, {191, 170, 255**, {46, 0, 189**, {141, 126, 189**, {31, 0, 129**, {96, 86, 129**, {25, 0, 104**, {78, 69, 104**, {19, 0, 79**, {59, 53, 79**, {127, 0, 255**, {212, 170, 255**, {94, 0, 189**, {157, 126, 189**, {64, 0, 129**, {107, 86, 129**, {52, 0, 104**, {86, 69, 104**, {39, 0, 79**, {66, 53, 79**, {191, 0, 255**, {234, 170, 255**, {141, 0, 189**, {173, 126, 189**, {96, 0, 129**, {118, 86, 129**, {78, 0, 104**, {95, 69, 104**, {59, 0, 79**, {73, 53, 79**, {255, 0, 255**, {255, 170, 255**, {189, 0, 189**, {189, 126, 189**, {129, 0, 129**, {129, 86, 129**, {104, 0, 104**, {104, 69, 104**, {79, 0, 79**, {79, 53, 79**, {255, 0, 191**, {255, 170, 234**, {189, 0, 141**, {189, 126, 173**, {129, 0, 96**, {129, 86, 118**, {104, 0, 78**, {104, 69, 95**, {79, 0, 59**, {79, 53, 73**, {255, 0, 127**, {255, 170, 212**, {189, 0, 94**, {189, 126, 157**, {129, 0, 64**, {129, 86, 107**, {104, 0, 52**, {104, 69, 86**, {79, 0, 39**, {79, 53, 66**, {255, 0, 63**, {255, 170, 191**, {189, 0, 46**, {189, 126, 141**, {129, 0, 31**, {129, 86, 96**, {104, 0, 25**, {104, 69, 78**, {79, 0, 19**, {79, 53, 59**, {51, 51, 51**, {80, 80, 80**, {105, 105, 105**, {130, 130, 130**, {190, 190, 190**, {255, 255, 255**, {0, 0, 0** //по слою **; //------------------------------------------------------------------------------ int gl_color_to_aci(const float &r, const float &g, const float &b) ** int res = 7; int _r = r * 255; int _g = g * 255; int _b = b * 255; int d = 255 * 255 * 3; for (int i = 1; i <= 255; i++) ** int _d = pow(aci[i][0] - _r, 2) + pow(aci[i][1] - _g, 2) + pow(aci[i][2] - _b, 2); if (_d < d) ** d = _d; res = i; ** ** return res; ** | |
8
- 17.06.2012 - 18:47
| ...как загадочно форму открывающиеся фигурные скобки коробит... | |
9
- 17.06.2012 - 19:01
| http://sub-atomic.com/~moses/acadcolors.html | |
10
- 18.06.2012 - 09:31
|
Люди-человеки, не издевайтесь, я вообще вас не понимаю, пишу же что не программист, мне просто нужно узнать что означает код HEx если его перевести в GDI! 4, ACAD тут особо не при чём, это левый самопальный Vba скрипт использующий для обозначения цвета библиотеку GDI 5, вообще не понял толком ничего 6, нет там 5 знаков быть должно 7, я не программист зачем всё это?! 9, да хорошая штука, но мне нада из Hex в GDI а не в RGB! | |
11
- 18.06.2012 - 16:02
| 10-WeMaN > я имел в виду, что 32768 в hex = 0x008000, а это один из оттенков зеленого. | |
12
- 18.06.2012 - 16:04
| а вот зеленый цвет допустим который в Hex будет 00FF00 в терминологии GDI обозначен кодом 32768 - это ты как выяснил? :) Что именно 00FF00 = 32768 в GDI? Короче, задавай цвет в HEX и переводи его в DEC в калькуляторе, да и все. | |
13
- 18.06.2012 - 16:13
|
Есть еще такая штука http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Но что то сомнительна что она для этого случая | |
14
- 18.06.2012 - 16:45
| 13-TVV1 > Да это кажется просто к тому, что есть 16-битный и 24-битный цвет. | |
15
- 19.06.2012 - 08:30
| может вы не можете получить адекватный результат из-за обратного порядка байт в коде цвета? вы пробовали вводить 0000FF = 255 (красный) или FF0000 = 16711680 (синий)? | |
16
- 22.06.2012 - 09:23
|
12 и всем Да 5ти значная там кодировка из Hexа в десятиричной лезут 6 7 и выше знаки, тут 5 значная 32 битная кодировка цвета... Я не пойму неужели нету палитры?! Программисты, ау! | |
17
- 22.06.2012 - 11:11
|
"5 значная 32 битная кодировка цвета"???? вы имеете ввиду что после преобразования кода цвета в десятичное число оно получается не длиннее чем 5 знаков? тогда это скорее всего цвет из 16 или 15 битов. вам TVV1 дал ссылку. однако для 5/5/5 чистый зеленый будет 000001111100000 = 992, а для 5/6/5 чистый зеленый будет 0000011111100000 = 2016 что никак не совпадает с приведенным вами кодом 32768 - который как вам сказали очень очень очень сильно смахивает на цвета вида 8/8/8. | |
| Интернет-форум Краснодарского края и Краснодара |