Newsgroup: it.comp.appl.access
Titolo: calcolo colore negativo

Per ottenere il codice di un colore, partendo dalle sue componenti RGB,
sapete tutti che si utilizza la funzione RGB() di VBA.
Una volta che si hanno i valori numerici delle componenti RGB, sapete dirmi
qual'č la formula matematica per il calcolo del colore negativo?
-- 
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype:pbsoftsolution

 --
Ciao Gabriele.
La cosa in realtà non è così semplice...
Cosa intendi per colore Negativo....?
Intendi quello con maggio contrasto rispetto al Colore iniziale...?
La cosa più semplice è questa:
NewColor = BacGroundColor Xor &HFFFFFF
Ma non funziona con le tonalità di grigio medio ed è anche
comprensibile...
Puoi provare con questo è un compromesso accettabile a mio avviso:
 NewColor = Not (OldCOLOR Xor &HFF000000)
    If Abs(NewColor - OldCOLOR ) < 66000 Then NewColor = vbWhite
La cosa non si risolve lavorando con RGB ma lavorando con HSL e sulla
sfericità del colore...!
Scendendo nel tecnico la sfera colore 3D(HSL) serve sfasarsi dal
colore originale sapendo che in realtà l'angolo sferico non è di 360°
ma di 240°.....!
Quì ti posto qualche cosa che feci qualche tempo fà...
Private Declare Sub ColorRGBToHLS Lib "shlwapi.dll" ( _
      ByVal clrRGB As Long, _
      pwHue As Integer, _
      pwLuminance As Integer, _
      pwSaturation As Integer)
Private Declare Function ColorHLSToRGB Lib "shlwapi.dll" ( _
      ByVal wHue As Integer, _
      ByVal wLuminance As Integer, _
      ByVal wSaturation As Integer) As Long
.......
    Dim intH    As Integer
    Dim intL    As Integer
    Dim intS    As Integer
    Dim lngRGB  As Long
    lngRGB = InitColor ' &H808080
    Call ColorRGBToHLS(lngRGB, intH, intL, intS)
    ' Algoritmo di inversione colore....
    intH = (intH + 120) Mod 240
    intL = (intL + 120) Mod 240
    intS = 240
    EndColor= ColorHLSToRGB(intH, intL, intS)
Se hai bisogno fammi sapere.
Ciao
@Alex

 Intendi quello con maggio contrasto rispetto al Colore iniziale...?
[omissis]
Allora vediamo di trovare una risposta alla tua domanda: quale algoritmo
utilizza Windows, ad esempio, per il testo evidenziato?


 utilizza Windows, ad esempio, per il testo evidenziato?
Quello che ti ho detto(vale a dire passando per HSL ha pure le
chiamate API non le avrà fatte per bellezza) anche perchè è l'unico
che funziona sempre in modo uguale.
;-)
Il WorkAround che ti ho proposto funziona ma da una risposta
tutt'altro che proporzionale(anche se funzionale) ti basta testare su
sfumature diverse di colore.
@Alex

Il 03 Nov 2007, 11:57, Gabriele Bertolucci <"info[at]pbsoft[dot]it"> ha
scritto:

Il colore usato da Windows per la selezione di qualsiasi oggetto è quello
complementare a quello usato nell'oggetto stesso.
Dovresti quindi documentarti sui colori complementari.
Saluti
Franco
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Franco
Franco mi pare una risposta di Rutelli....!
Il colore complementare si deve calcolare dal colore Originale, poi se
il colore originale è tra i QBColor è semplice(relativamente) ma per
funzionare
sempre serve avere le idee chiare.... rileggiti le mie risposte, non sono la
bibbia ma trovi la risposta e magari puoi approfondire...
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------