Thema: hex2rgb
Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 06-07-2007, 15:36
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Ein Integer ist 4 Byte groß. Jeder RGB-Wert reicht von 0-255, also genau 1 Byte. Der Hexwert ist jetzt der 4 Byte Integer mit den 3 Farbkomponenten, die du einzeln extrahieren musst!
0xFF & $int extrahiert das unterste Byte aus dem Integer. Willst du aber nicht das unterste, sondern das zweite oder dritte extrahieren, musst du vor der Maskierung mit 0xFF um ein oder zwei Bytes shiften, also 0x8 für 1 Bytestelle und 0x10 (=16) für 2 Bytestellen.
Somit extrahierst du das 2te Byte als Rotkomponente, das 3te Byte als Grünkomponente und das 4te Byte als Blaukomponente. Das 1te Byte bleibt halt unbeachtet.

Frage beantwortet?

Edit: schneller
Mit Zitat antworten