2011-11-04 7 views
9

Sto creando la mia combinazione di colori per il testo Sublime basato su un tema di Visual Studio..vssettings file (Impostazioni di Visual Studio) Formato colore

Il tema di Visual Studio ha definito foreground e background, ma non si trovano nella triplet RGB standard. Non so cosa significhi questo numero, e mi chiedevo come potevo convertirlo in una tripletta RGB (es. #FFFFFF) da usare in Sublime Text.

Esempio:

<Item Name="Comment" Foreground="0x007B7466" Background="0x02000000" BoldFont="No"/> 
<Item Name="Plain Text" Foreground="0x00F3F2F1" Background="0x002A2822" BoldFont="No"/> 
<Item Name="Selected Text" Foreground="0x00FFFFFF" Background="0x0064614F" BoldFont="No"/> 

Ho provato a cercare su google qui e, ma a quanto pare non riesco a ottenere i miei termini di ricerca corretti per trovare le risposte giuste.

+0

Può essere RGBA? – yosukesabai

+0

Non so, questo non funziona: http://hex2rgba.devoth.com/ –

+1

FYI 0x02000000 significa "Default" – banging

risposta

5

Questi appaiono, a prima vista (e con una certa conoscenza di come MS gestisce i colori) come ARGB o XRGB DWORD in forma esadecimale. A seconda di cosa stai facendo, però, potrebbero essere A/XBGR.

Molto probabilmente, i primi due caratteri sono alfa, quindi rosso, verde e blu. Questo è un modo abbastanza standard di disporre i colori, poiché si inserisce perfettamente in un registro di memoria e corrisponde ai dati di trama per alcuni formati.

Tuttavia, in alcuni posti è possibile invertire tale operazione, che corrisponde ad altri formati di trama. L'A/X rimane all'inizio, quindi blu, verde e rosso.

Questo dovrebbe essere facile da testare, fornendo 0x00FF0000. Se blu, il BGR, se rosso, RGB.

È possibile che possano utilizzare il primo canale/byte come qualcosa di diverso da alfa. Imballare i dati nel canale alfa di una trama a 3 canali non è raro. Tuttavia, solo uno dei colori è 0x02 ..., il resto è tutto 0x00 ..., quindi non lo farei (c'è anche un colore da 3,5 byte, quindi forse errori di battitura).

Non è necessario eseguire alcuna conversione con questi, poiché sono già esadecimali (codice esadecimale reale, non il materiale Web #...). Per "convertire" una tripletta web hex, basta rimuovere la # e anteporre 0x00 e si dovrebbe essere bravi. Tutti gli altri caratteri rimangono gli stessi (caso non dovrebbe importare, anche se alcune persone come maiuscole come procedura).

9

Proprio come un FYI il file vsettings utilizza BGR non per RGB

+0

Il tuo piccolo "FYI" valeva molto di più per me di "potrebbe essere RGB, potrebbe essere BGR, potrebbe essere A/XBGR o ARGB, basta testarlo e vedere .. "(senza offesa per @ssube, intendeva bene ma non mi piacciono le risposte che spingono al buio) – MarioDS

+0

Le versioni precedenti di Visual Studio utilizzavano RGB? Il motivo per cui lo chiedo è che ho trovato un post sul blog di un file vssettings con tema scuro per SSMS 2012 (basato sulla shell VS 2010). Quando ho importato le impostazioni in SSMS 2016 (basato sulla shell di VS 2015), i componenti R e B sono stati invertiti, rispetto ai valori originali menzionati nel blog. Quindi mi chiedevo se il formato dei colori nel file vssettings fosse cambiato tra VS 2010 e 2015. –