======[PHP] imageColorFromHtml====== Diese Funktion erstellt ein color für ein Image anhand des HTML-Wertes der Farbe. ===== Funktion ===== Das # kann mitgegeben oder weggelassen werden. Es wird nach 6 hexadekadische Ziffern ([[:digit:]A-Fa-f]) geprüft. /** * create a imageColor by a html #-Value (#FFFFFF, #00FFFF, FFFFFF etc.) * @param Image * @param String color als Hexwert * @return ImageColor */ function imageColorFromHtml(&$image, $color){ //Der Pattern zum zerlegen des Strings in seine RGB-Werte. //String beginnt mit oder ohne ein #. //gefolgt von 3 mal 2 [:xdigit:] ([:xdigit:]:Hexadecimal digit characters) //und endet danach $hex_color_pattern6 = '/^#?([[:xdigit:]]{2})([[:xdigit:]]{2})([[:xdigit:]]{2})$/'; //Für die Kurzform ists dasselbe, einfach nur 3 [:xdigit:] $hex_color_pattern3 = '/^#?([[:xdigit:]])([[:xdigit:]])([[:xdigit:]])$/'; //Falls es sich um eine Kurzform handelt, die Werte verdoppeln $color = preg_replace($hex_color_pattern3, '\1\1\2\2\3\3', $color); //hexwert parsen if(!preg_match($hex_color_pattern6, $color, $rgb)) return false; //Gefundener Gesammtstring entfernen. Der erste Eintrag im Array ist der gesammte gefundene String. //Das brauchen wir ncht array_shift($rgb); //Alle Hexwerte in Decimale Werte wandeln //ERS: 20.01.2012: Array_walk durch array_map ersetzte //array_walk($rgb, create_function('&$item, $key', '$item = hexdec($item);')); $rgb = array_map('hexdec', $rgb); //Und zuguter letzte mit ImageColorAllocate() und unseren RGB-Werten den ImageColor erstellen return ImageColorAllocate($image, $rgb[0], $rgb[1], $rgb[2]); } {{tag>PHP Function Image}}