cbeham
1
H Zusammen,
werde aus dem Profil ~HexColor nicht schlau und Doku find ich auch keine.
Ich habe eine Farbe in einem String (#0D0100) und möchte natürlich in der Visu nicht den String sondern eine schöne Farbe anzeigen.
So, wie mache ich das?
echo $dec = hexdec(„0D0100“);
funktioniert mal leider nicht, kommt immer schwarz
Danke und lg
pitti
2
Habe mal hier was aus meinem Fundus …
function int2rgb($num)
{
$rgb[0] = ($num & 0xFF0000)>>16;
$rgb[1] = ($num & 0x00FF00)>>8;
$rgb[2] = ($num & 0x0000FF);
return $rgb;
}
function rgb2int($rgb)
{
$num = $rgb[0] << 16;
$num+= $rgb[1] << 8;
$num+= $rgb[2];
return $num;
}
function str2rgb($str)
{
$str = preg_replace('~[^0-9a-f]~','',$str);
$rgb = str_split($str,2);
for($i=0; $i<3; $i++) {
$rgb[$i] = intval($rgb[$i],16);
}
return $rgb;
}
- str2rgb
- rgb2int
- SetValue
Gruß HEiko
1 „Gefällt mir“
cbeham
3
Thx Heiko!
habs schon gehabt und jetzt hakts wieder:
// $string1 = GetValue(43791);
$string2 = "#0D282D";
$ergebnis_1 = str2rgb($string2);
$wunschFarbe = rgb2int($ergebnis_1);
SetValue(11634,$wunschFarbe);
// ********************************************************************************************************************************
function int2rgb($num)
{
$rgb[0] = ($num & 0xFF0000)>>16;
$rgb[1] = ($num & 0x00FF00)>>8;
$rgb[2] = ($num & 0x0000FF);
return $rgb;
}
function rgb2int($rgb)
{
$num = $rgb[0] << 16;
$num+= $rgb[1] << 8;
$num+= $rgb[2];
return $num;
}
function str2rgb($str)
{
$str = preg_replace('~[^0-9a-f]~','',$str);
$rgb = str_split($str,2);
for($i=0; $i<3; $i++)
{
$rgb[$i] = intval($rgb[$i],16);
}
return $rgb;
}
Warning: Undefined array key 2 in /var/lib/symcon/scripts/33766.ips.php on line 34
mit $string2 = „#010701“; gehts aber, und wenn ichs klein schreibe auch 0d282d
Also nur wenn ichs aus der Variable lese funktionierts nicht:
$string1 = GetValue(43791);
Also ich checks nicht:
$string1 = „#3C1F07“; geht nicht
$string1 = „#3c1F07“; geht
habs gelöst (im Moment) mit strtolower
Danke und glg
pitti
4
Ja, weil die regular Expression in str2rgb nur Zahlen 0-9 und Buchstaben a-f filtert!
Versuchmal so aus dem Bauch heraus …
$str = preg_replace('~[^0-9a-fA-F]~','',$str);
Gruß Heiko
PS: oder mach ein strtolower oder wie das heißt!
1 „Gefällt mir“