Win8x/10 Metro UI Color

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Win8x/10 Metro UI Color

Beitrag von AUGE_OHR »

habe auf Roger Website gerade diesen Link entdeckt http://colorlib.com/etc/metro-colors/

um eine Farbe selbst zu ermitteln benutzte ich M$ Paint
GetColor.png
GetColor.png (136.17 KiB) 3187 mal betrachtet
zunächst, per "Print Screen", ein Snapshot machen und in M$ Paint einfügen.
1.) mit dem Pipetten Symbol (Tools) die Farbe holen
2.) die Farbpalette öffnen
die RGB Werte findet man nun rechts unten.
gruss by OHR
Jimmy
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Win8x/10 Metro UI Color

Beitrag von Rudolf »

Hallo,
ich verwende Pixie von Nattyware, kopiert den Wert per Hotkey gleich in die Zwischenablage
Grüße
Rudolf
http://www.nattyware.com/pixie.php
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Win8x/10 Metro UI Color

Beitrag von AUGE_OHR »

man es auch mit Xbase++ und ein wenig Windows API machen.

Code: Alles auswählen

#INCLUDE "xbp.CH"
#INCLUDE "AppEvent.CH"
#INCLUDE "dll.CH"

DLLFUNCTION GetPixel( nHDC, x, y)   USING STDCALL FROM GDI32.DLL
DLLFUNCTION GetWindowDC( hwnd )     USING STDCALL FROM USER32.DLL
DLLFUNCTION ReleaseDC(hwnd, hdc)    USING STDCALL FROM USER32.DLL

PROCEDURE AppSys
RETURN

PROCEDURE Main
LOCAL nEvent, mp1, mp2, oXbp
LOCAL oDlg
LOCAL aSize := {225,225}  // size of Demo JPG
LOCAL oImage
LOCAL oStatic

   oDlg         := XbpDialog():new( AppDesktop() )
   oDlg:title   := "GetPixel"
   oDlg:tasklist := .T.
   oDlg:clientSize := aSize
   oDlg:create()
   CenterControl(oDlg)

   oImage := XbpBitmap():new():create()
   oImage:loadfile("colors.jpg" )

   oStatic := XbpStatic():new(oDlg:drawingArea ,, {0,0} , aSize )
   oStatic:Type := XBPSTATIC_TYPE_BITMAP
   oStatic:Caption := oImage
   oStatic:Create()
   // aPos is "relative" to Parent
   oStatic:lbDown := {|aPos, uNIL, oSelf| ShowColor(aPos,oSelf)}

   nEvent := 0
   DO WHILE nEvent <> xbeP_Close
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      oXbp:handleEvent( nEvent, mp1, mp2 )
   ENDDO

RETURN

FUNCTION ShowColor( aPos, oSelf )
LOCAL oPS
LOCAL hWnd
LOCAL hDC := 0
LOCAL nHandle
LOCAL nColor

   oPS  := XbpPresSpace():new():create( oSelf:winDevice() )
   hWnd := oSelf:getHWND()
   hDC  := GetWindowDC( hWnd )

   nColor := GetPixel(hDC,aPos[1],aPos[2])

   ReleaseDC(hWnd, hDC)
   oPS:Destroy()

   IF nColor > 0
      Msgbox(VAR2CHAR(GraGetRGBIntensity(AutomationTranslateColor(nColor,.T.))))
   ENDIF

RETURN nil
colors.jpg
colors.jpg (8.13 KiB) 3153 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Win8x/10 Metro UI Color

Beitrag von AUGE_OHR »

AUGE_OHR hat geschrieben:

Code: Alles auswählen

FUNCTION ShowColor( aPos, oSelf )
   ...
   nColor := GetPixel(hDC,aPos[1],aPos[2])
   ...
sorry, ist nicht ganz richtig ... Windows gibt die Koordinaten als "Top-Down" an.

Code: Alles auswählen

LOCAL aSize := oSelf:Currentsize()
   ...
   nColor := GetPixel(hDC,aPos[1],aSize[2]-aPos[2])
   ...
gruss by OHR
Jimmy
Antworten